pytorch数据集加载报错:
TypeError: default_collate: batch must contain tensors, numpy arrays, numbers, dicts or lists found
报错原因:
没有将数据转为torch的Tensor数据类型。
解决方法:
读取数据集时将数据转为Tensor数据类型即可。
import torch
import torchvision
import torch.nn as nn
import torch.utils.data as Data
train_data=torchvision.datasets.MNIST(#训练数据
root= './mnist_data/',
train=True,
transform=torchvision.transforms.ToTensor(), #一定要加上转为Tensor的这行,不然就会报错题目的错
download=True
)
test_data = torchvision.datasets.MNIST(
root='./mnist_data/',
train=False,
transform=torchvision.transforms.ToTensor(), #测试集也要加
download=True
)
train_loader = Data.DataLoader(dataset=train_data, batch_size=BATCH_SIZE, shuffle=True)
test_loader = Data.DataLoader(dataset=test_data, batch_size=BATCH_SIZE, shuffle=False)