调用MNIST数据集元素时出现TypeError: 'bool' object is not callable错误如何解决?
问题解决:TypeError: 'bool' object is not callable
错误根源在于transform参数的取值错误:你给transform传了布尔值True,但这个参数要求传入可调用的变换对象(比如图像预处理函数),而布尔值无法被调用,所以在访问train_data[0]时触发报错。
修复步骤:
- 首先导入
torchvision.transforms模块 - 将
transform=True替换为实际的变换对象,最基础的是transforms.ToTensor(),它能把PIL图像转换成PyTorch张量
修改后的代码:
import torchvision.transforms as transforms from torchvision import datasets train_data = datasets.MNIST(root='D:\medical_imaging_radiation_therapy\medimg_udemy', train=True, download=True, transform=transforms.ToTensor() ) train_data[0] # 现在可以正常访问数据
扩展:多个变换组合
如果需要对图像做多种预处理(比如归一化),可以用transforms.Compose把多个变换打包:
transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,)) # MNIST数据集的均值和标准差 ]) train_data = datasets.MNIST(root='D:\medical_imaging_radiation_therapy\medimg_udemy', train=True, download=True, transform=transform )
内容的提问来源于stack exchange,提问作者aismail
相关产品推荐
相关产品推荐

