gpt4 book ai didi

python - MNIST 数据反规范化不会给我返回相同的结果

转载 作者:行者123 更新时间:2023-11-30 09:46:15 26 4
gpt4 key购买 nike

这是我学习的一部分。我知道标准化确实有助于提高准确性,因此将 mnist 值除以 255。这会将所有像素除以 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 数据类型有关吗?

最佳答案

MNIST 存储为 28x28 uint8 numpy 数组,当你除以 255 时,它会将数据转换为浮点以进行除法,最终得到一个 float numpy 数组。因此,当您乘以 255 时,它仍然是一个 float 组,并且 matplotlib 出于绘图目的可能会以不同的方式解释它。

为了使其正常工作,您必须将数据转换为 uint8,例如:

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

然后它应该正确绘制。

关于python - MNIST 数据反规范化不会给我返回相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52398936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com