作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Pytorch 中加载 MNIST 数据集,并使用内置数据加载器迭代训练示例。但是,在迭代器上调用 next() 时出现错误。 CIFAR10 没有这个问题。
import torch
import torchvision
import torchvision.transforms as transforms
transform = transforms.Compose(
[transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
batch_size = 128
dataset = torchvision.datasets.MNIST(root='./data', train=True, transform=transform, download=True)
dataloader = torch.utils.data.DataLoader(dataset, batch_size=batch_size, shuffle=True, num_workers=4)
dataiter = iter(dataloader)
dataiter.next() # ERROR
# RuntimeError: output with shape [1, 28, 28] doesn't match the broadcast shape [3, 28, 28]
我正在使用 Python 3.7.3 和 PyTorch 1.1.0
最佳答案
MNIST
数据集由灰度图像组成,即每个图像只有 1
channel ,而 CIFAR10
数据集由彩色图像组成,即,每张图片都有 3
channel 。
因此,如果是 MNIST
数据集,请将 transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
替换为 transforms.Normalize([0.5], [0.5])
.
关于python-3.x - 无法遍历 PyTorch MNIST 数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57130264/
我是一名优秀的程序员,十分优秀!