AttributeError: Can't pickle local object 'Sharpen..create_matrices'

Pytorch的DataLoader模块,当 num_workers设置为非0时,在linux下运行正常,但是在Windows下出现AttributeError: Can’t pickle local object ‘Sharpen..create_matrices’,出现该异常的原因是pickle模块不能序列化lambda function。
在Unix/Linux下,multiprocessing模块封装了fork()调用,是我们不需要关注fork()的细节。由于windows没有fork调用,因此,multiprocessing需要“模拟”出fork的效果,父进程所有Python对象都必须通过pickle序列号再传到子进程中去。所以,如果multiprocessing在Windows下调用失败了,要先考虑是不是pickle失败了。

你可能感兴趣的:(踩坑经验)