MNIST数据反规范化并没有返回sam

2024-09-25 00:25:40 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我学习的一部分。我知道标准化确实有助于提高准确性,因此除以255得到mnist值。这将把所有像素除以255,因此28×28的所有像素的值将在0.0到1.0之间 . 你知道吗

现在我厌倦了用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()

输出:

enter image description here

我错过了什么?。和输入数据的float和int数据类型有关吗?你知道吗


Tags: datashowtrainy图片loadplt像素mnist
1条回答
网友
1楼 · 发布于 2024-09-25 00:25:40

MNIST存储为28x28 uint8 numpy数组,当您除以255时,它会将数据转换为浮点,以便进行除法,最终成为浮点numpy数组。因此,当您与255相乘时,它仍然是一个浮点数组,matplotlib可能会对其进行不同的解释,以便于打印。你知道吗

要使其正常工作,必须将数据强制转换为uint8,如:

trainX = (trainX * 255).astype(np.uint8)

那么它应该正确地绘制。你知道吗

相关问题 更多 >