如果我这样做
mnist_train = MNIST('../data/MNIST', download = True,
transform = transforms.Compose([
transforms.ToTensor(),
]), train = True)
及
mnist_train.data.max()
为什么我得到255?我应该得到1,因为ToTensor()
缩放到[0,1]
,对吗
如果我这样做:
for i in range(0, len(mnist_train)):
print(mnist_train[i][0].max())
然后,我几乎得到了1
有人能帮我理解吗
当你这样做的时候
PyTorch为您提供了
mnist_train
的data
属性,该属性在this line上定义(当您创建MNIST实例时)。如果您在__init__
中查看它前面的代码,则不会发生转换奥托,当你这么做的时候
对象的
__getitem__
方法被触发,您可以找到here。在这个方法中transform
有一个if
语句,因此现在就可以得到转换后的版本由于一种常见用法是通过
torch.utils.data.DataLoader
使用这个MNIST数据集(或任何其他数据集),并且它调用这个__getitem__
,因此我们得到了规范化的值相关问题 更多 >
编程相关推荐