精慕门3092436
2019-11-10 17:46
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 老师这个啥问题??
这个应该是windows相关的问题,跟PyTorch没关。可以考虑在"import torchvision.transforms as transforms" 的下一行加上以下内容试一下。如果还报错的话,你可以在网上搜索一下“windows python multiprocessing”之类的关键字,看看有没有解决办法。
if __name__ == '__main__': torch.multiprocessing.set_start_method('spawn')
老师写的代码,那边的线程是2,改成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__': ” 下面
给人工智能爱好者的PyTorch入门课
3830 学习 · 35 问题
相似问题