BrokenPipeError: [Errno 32] Broken pipe

BrokenPipeError: [Errno 32] Broken pipe 解决

BrokenPipeError: [Errno 32] Broken pipe_第1张图片

原因:

在训练过程中,设置的num_workers过大
BrokenPipeError: [Errno 32] Broken pipe_第2张图片

修改num_workers=0 或者比你原先设定的数字小的数值。

num_worker参数理解

就是设置参数大的话,例如参数为10,就可以有10个线程来加载batch到内存。当然参数设置过大,而自己内存不够的情况下,就会出现线程管道破裂,即broken pipe ,所以一般默然设置为0.
当然:如果num_worker设为0,意味着每一轮迭代时,dataloader不再有自主加载数据到RAM这一步骤(因为没有worker了),而是在RAM中找batch,找不到时再加载相应的batch。缺点当然是速度更慢。
—————————————————————————————————————
原文链接:https://blog.csdn.net/kaxiaokui/article/details/106453605

你可能感兴趣的:(BUG修复总结,深度学习,人工智能)