问答详情
源自:4-2 常用公共数据集加载

在训练加载时,加载报错

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  老师这个啥问题??

提问者:精慕门3092436 2019-11-10 17:46

个回答

  • TonyLiang
    2019-11-13 10:13:38

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

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


  • 西元440864
    2020-04-06 19:42:53

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

  • Coder_zheng
    2020-01-31 01:00:05

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

    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__': ” 下面