最近在学pytorch入门,在可视化自己的CIFA10数据集时,用到了iter()函数,结果出现如下错误:
BrokenPipeError: [Errno 32] Broken pipe
在调试中发现,若将num_workers参数设置为0(原本为2),则以上报错不会出现
原因在于,在windows上使用多线程时,windows子线程在开始时会先执行main模块,子进程因而又会创建新的子进程,所以可以将代码包裹进:
if __name__ == '__main__':
就解决了以上报错。