当前位置:   article > 正文

解决BrokenPipeError: [Errno 32] Broken pipe/RuntimeError: DataLoader worker (pid(s) x) exited unexpe报错

brokenpipeerror

 出现错误如下(仅截图部分):

为什么出现此问题?

答:表明在使用多进程的情况下,存在尝试在当前进程还未完成引导阶段时启动新进程的问题。

这通常是由于在多进程环境中启动了新的进程。

解决办法:

1.将代码放入main()函数,同时添加下述代码。防止多进程的递归调用。这将确保只有在脚本作为主模块执行时,训练代码才会运行。(实测有用,程序正常运行)

  1. if __name__ == '__main__':
  2. main()

2. 修改调用torch.utils.data.DataLoader()函数时的 num_workers 参数。

train_data_loader = DataLoader(train_dataset, batch_size=hparams.syncnet_batch_size, shuffle=True, num_workers=0)
test_data_loader = DataLoader(test_dataset, batch_size=hparams.syncnet_batch_size, shuffle=False, num_workers=0)

 参考:BrokenPipeError: [Errno 32] Broken pipe

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/562723
推荐阅读
相关标签
  

闽ICP备14008679号