我是靠谱客的博主 勤奋酒窝,最近开发中收集的这篇文章主要介绍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() #这一行非常关键,不写这一行的代码的话,其预览的图片是无法展示出来的
最终的结果如图所示:
最后
以上就是勤奋酒窝为你收集整理的TypeError: 'module' object is not callable (pytorch在进行MNIST数据集预览时出现的错误)的全部内容,希望文章能够帮你解决TypeError: 'module' object is not callable (pytorch在进行MNIST数据集预览时出现的错误)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复