Neural network torchvision.dataset.MNIST与Michael Nielsens神经网络和深度学习之间的不一致/不准确

Neural network torchvision.dataset.MNIST与Michael Nielsens神经网络和深度学习之间的不一致/不准确,neural-network,pytorch,mnist,Neural Network,Pytorch,Mnist,我打印了pytorch和mnist数据集的第一个训练图像的矢量化形式。 对于浮点精度误差来说,差异似乎太大了 第一列mnist列车图像的完全差异: 要复制的代码: 导入mnist\u加载器 进口numpy set_printoptions(格式化程序={'float':{:0.4f}'。格式化}) d=mnist\u loader.load\u data() 打印numpy.array(d[0][0][0])。重塑(784,1) Pytork: 导入火炬 进口火炬视觉 从torchvisi

我打印了pytorch和mnist数据集的第一个训练图像的矢量化形式。 对于浮点精度误差来说,差异似乎太大了

第一列mnist列车图像的完全差异:

要复制的代码:

导入mnist\u加载器
进口numpy
set_printoptions(格式化程序={'float':{:0.4f}'。格式化})
d=mnist\u loader.load\u data()
打印numpy.array(d[0][0][0])。重塑(784,1)
Pytork:

导入火炬
进口火炬视觉
从torchvision导入转换为tf
dtype=torch.32
transforms=tf.Compose([tf.ToTensor()]))
mnist_data=torchvision.datasets.mnist(“./mnist”,transform=transforms,download=True)
数据加载器=torch.utils.data.DataLoader(mnist\U数据,
批次尺寸=500,
shuffle=False,
工人数量=1)
数据,目标=下一个(数据加载器
打印(数据[0]。重塑(784,1))

有人知道这是什么原因吗?

MNIST图像由0到255(包括0到255)范围内的整数像素值组成。为了生成您正在查看的张量,这些整数值已被归一化为介于0.0和1,0之间,方法是将它们全部除以某个常数因子。似乎您的两个源选择了不同的归一化因子:一种情况下为255,另一种情况下为256