今天遇到了一个问题:TypeError: 'module' object is not callable。网上很多人说,原因是模块名和类名称是一样的,比如
https://www.jianshu.com/p/b70068223a4e
对于我来说却不是这样。经过检查,发现错误源于数据加载器:
dataset = torchvision.datasets.ImageFolder(os.path.join(data_dir, 'train_valid_test', 'train'),
transform = transforms)
导包的时候,引入了transforms:
import torchvision.transforms as transforms
但是在ImageFolder中,却写成了transform = transforms。改过来就行了,比如transform = transforms.ToTensor()。算是很低级的失误了
另外,在导入数据集的时候,如果没有使用transforms.ToTensor()函数,还会报错
default_collate: batch must contain tensors, numpy arrays, numbers, dicts or lists; found <class 'PIL.Image.Image'>