import torch
import torchvision
import torchvision.transforms as transforms
transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5), (0.5))
])
trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=20, shuffle=True, num_workers=2)
testset = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=20, shuffle=False, num_workers=2)
for i, data in enumerate(trainloader, 0):
inputs, labels = data[0], data[1]
需要修改transforms.Normalize((0.5),(0.5)),0.5后面加逗号,
问题分析:可能是pytorch版本导致的。
将代码改为:
img_transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))
])
type((0.5)) # <type 'float'>
type((0.5,)) # <type 'tuple'>
参考:
(24条消息) Pytorch-IndexError: too many indices for tensor of dimension 0_Virogous的博客-CSDN博客