BrokenPipeError: [Errno 32] Broken pipe

博客主要介绍了BrokenPipeError: [Errno 32] Broken pipe错误的解决办法,指出训练时设置的num_workers过大易引发该错误,可将其设为0或更小值。同时解释了num_worker参数含义,设为0虽避免错误但加载数据速度会变慢。

BrokenPipeError: [Errno 32] Broken pipe 解决

在这里插入图片描述

原因:

在训练过程中,设置的num_workers过大
在这里插入图片描述

修改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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值