问题描述
在win10中,pytorch下使用dataloader加载数据集时,如果将参数num_workers
设置为非0数,即采用多线程加载数据时,会产生报错:
BrokenPipeError: [Errno 32] Broken pipe
在spyder和pycharm中均会报该错误。
解决办法
可以把代码放在jupyter notebook
上来跑,亲测num_workers
设置为非0不会报错,不过不知道是否真的起到了多线程加载数据的作用。
一般来讲,如果模型规模不大,那么完全没有必要使用多线程加载,但如果是在服务器上跑训练,那就有必要利用多线程加载来加快CPU加载数据的速率,以配合GPU的高速运算,提高GPU利用率。