TypeError: 'module' object is not callable (pytorch在进行MNIST数据集预览时出现的错误)

在使用pytorch在对MNIST数据集进行预览时,出现了TypeError: ‘module’ object is not callable的错误:
上报错信息图如下:
在这里插入图片描述
从图中可以看出,报错位置为第35行,也就是如下位置的错误:

images, labels = next(iter(data_loader_train))

在经过多次的检查发现,引起MNIST数据集无法显现的问题不是由于这一行所引起的,而是由于缺少了对图片进行处理,在加载数据代码的前添加上如下的代码:

transform = transforms.Compose([
     transforms.ToTensor(),
     transforms.Lambda(lambda x: x.repeat(3,1,1)),
     transforms.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))
 ])   
  • 此时问题就已经解决了
  • 下面完整的代码贴出来:
 1.获取手写数字的训练集和测试集
# 2.root 存放下载的数据集的路径
# 3.transform用于指定导入数据集需要对数据进行哪种操作
# 4.train是指定在数据集下完成后需要载入数据哪部分
import torch
import torchvision
import matplotlib.pyplot as plt
from torchvision import *
from torchvision import transforms
from torch.autograd import Variable

transform = transforms.Compose([
     transforms.ToTensor(),
     transforms.Lambda(lambda x: x.repeat(3,1,1)),
     transforms.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))
 ])   # 修改的位置

# 获取数据
data_train=datasets.MNIST(root='./MNIST_Model/',
                          transform=transforms,
                          train=True,           # true训练集
                          download=True)
data_test=datasets.MNIST(root='./MNIST_Model/',
                         transform=transforms,
                         train=False)          # false测试集
# 装载数据
data_loader_train=torch.utils.data.DataLoader(dataset=data_train,
                                              batch_size=64,  # 处理批次的大小(一次处理的数据大小)
                                              shuffle=True)   # 将处理的数据集合打乱
data_loader_test=torch.utils.data.DataLoader(dataset=data_test,
                                             batch_size=64,
                                             shuffle=True)
# 装载好数据之后,进行预览
images, labels = next(iter(data_loader_train))
img = torchvision.utils.make_grid(images)

img = img.numpy().transpose(1, 2, 0)
std = [0.5, 0.5, 0.5]
mean = [0.5, 0.5, 0.5]
img = img * std + mean
plt.imshow(img)
plt.show() #这一行非常关键,不写这一行的代码的话,其预览的图片是无法展示出来的

最终的结果如图所示:
在这里插入图片描述

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陶陶name

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值