为了账号安全,请及时绑定邮箱和手机立即绑定

在训练加载时,加载报错

func()  File "E:/workspace/untitled3/demo/transform.py", line 44, in func    dataier = iter(trainloader) "D:\ProgramData\Anaconda3\Anaconda3\lib\multiprocessing\reduction.py", line 60, in dump    ForkingPickler(file, protocol).dump(obj) TypeError: can't pickle module objects  老师这个啥问题??

正在回答

3 回答

这个应该是windows相关的问题,跟PyTorch没关。可以考虑在"import torchvision.transforms as transforms" 的下一行加上以下内容试一下。如果还报错的话,你可以在网上搜索一下“windows python multiprocessing”之类的关键字,看看有没有解决办法。

if __name__ == '__main__':
    torch.multiprocessing.set_start_method('spawn')


1 回复 有任何疑惑可以回复我~

老师写的代码,那边的线程是2,改成0就好了

0 回复 有任何疑惑可以回复我~

老师说的没错,改成下面这样就好了,

if __name__ == '__main__':

    torch.multiprocessing.set_start_method('spawn')

    #随机加载一个mini batch

    dataIter = iter(trainloader)

    images,labels = dataIter.next()

    imshow(torchvision.utils.make_grid(images))



和进程池相关的代码需要放在“if __name__ == '__main__': ” 下面

0 回复 有任何疑惑可以回复我~
#1

西元440864

加上上述语句后没有显示图像
2020-04-06 回复 有任何疑惑可以回复我~
#2

西元440864 回复 西元440864

已解决,在imshow后,添加plt.show()
2020-04-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在训练加载时,加载报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信