pytorch设置dataloader时有一个重要的参数'num_worker',这个参数设置为0时一切正常,但是速度慢

当设置不为0时就会出现'RuntimeError: : [Errno 32] Broken pipe'报错

这个问题困扰了我好久,有时候设置不为0也不出错,有时候有出错

结果今天终于发现问题了

Fix memory leak when using multiple workers on Windows by peterjc123 · Pull Request #5585 · pytorch/pytorch (github.com)

解决方法有几个

  1. 使用linux系统,这个不是很好换,除非一直使用linux,或者租服务器
  2. 直接使用num_workers=0,也就是单线程操作
  3. 在使用DataLoader读取之前加上  if __name__ == '__main__' :  就可以了。

更多推荐