神经网络的输出
Output of a neural network
我用 mnist 数据集测试我的网络。因此模型的输出形状为 10。
如何重塑输出?
例如,如果输出是标签 3,那么输出是 [0 0 0 1 0 0 0 0 0 0] 还是 [0 0 0 3 0 0 0 0 0 0] 还是完全不同?
问题是我不想使用数据加载器。我用这个方法:
from mlxtend.data import loadlocal_mnist
X, y = loadlocal_mnist(
images_path='/home/wai043/data/mnist/train-images-idx3-ubyte',
labels_path='/home/wai043/data/mnist/train-labels-idx1-ubyte')
如果标签为 3,则输出必须为 [0, 0, 0, 1, 0, 0, 0, 0, 0, 0]。从 loadlocal_mnist 获得的 y 参数具有直接标签,所以你需要在训练前"one-hot encode" y。
您可以使用以下代码进行编码
from mlxtend.preprocessing import one_hot
from mlxtend.data import loadlocal_mnist
X, y = loadlocal_mnist(images_path='/home/wai043/data/mnist/train-images-idx3-ubyte',
labels_path='/home/wai043/data/mnist/train-labels-idx1-ubyte')
y = one_hot(y)
我用 mnist 数据集测试我的网络。因此模型的输出形状为 10。
如何重塑输出? 例如,如果输出是标签 3,那么输出是 [0 0 0 1 0 0 0 0 0 0] 还是 [0 0 0 3 0 0 0 0 0 0] 还是完全不同?
问题是我不想使用数据加载器。我用这个方法:
from mlxtend.data import loadlocal_mnist
X, y = loadlocal_mnist(
images_path='/home/wai043/data/mnist/train-images-idx3-ubyte',
labels_path='/home/wai043/data/mnist/train-labels-idx1-ubyte')
如果标签为 3,则输出必须为 [0, 0, 0, 1, 0, 0, 0, 0, 0, 0]。从 loadlocal_mnist 获得的 y 参数具有直接标签,所以你需要在训练前"one-hot encode" y。
您可以使用以下代码进行编码
from mlxtend.preprocessing import one_hot
from mlxtend.data import loadlocal_mnist
X, y = loadlocal_mnist(images_path='/home/wai043/data/mnist/train-images-idx3-ubyte',
labels_path='/home/wai043/data/mnist/train-labels-idx1-ubyte')
y = one_hot(y)