这是我学习的一部分。我了解规范化确实有助于提高准确性,因此将mnist值除以255。这会将所有像素除以255,因此所有28 * 28像素的值将在0.0到1.0的范围内
现在,我厌倦了将255与255相乘,这实质上意味着我们应该取回原始值。但是当我显示图片时,原始图片和非规格化图片都不同。
(trainX, trainY), (testX, testY) = mnist.load_data()
plt.subplot(2,2,1)
plt.imshow(trainX[143])
trainX /= 255
plt.subplot(2,2,2)
plt.imshow(trainX[143])
trainX *= 255
plt.subplot(2,2,3)
plt.imshow(trainX[143])
plt.show()
输出:
我想念什么?与输入数据的float和int数据类型有关吗?
答案 0 :(得分:1)
MNIST存储为28x28 uint8 numpy数组,当您除以255时,它将数据转换为浮点数以进行除法,最后以float numpy数组的形式进行划分。因此,当您乘以255时,它仍然是一个浮点数组,而matplotlib可能出于绘图目的对它的解释有所不同。
要使其正常工作,必须将数据转换为uint8,例如:
trainX = (trainX * 255).astype(np.uint8)
然后它应该正确绘制。