yolo5 [Errno 32] Broken pipe OSError: [WinError 1455] 页面文件太小,无法完成操作

在尝试运行YOLOv5-Lite训练脚本时,遇到了OSError,指出页面文件太小无法完成操作,导致训练失败。问题根源在于数据加载过程中使用的多进程超过了CPU核数。解决方法是降低`workers`参数的值,将它设置为4后,问题得到解决,训练得以继续进行。
摘要由CSDN通过智能技术生成

错误代码:

  File "D:\Users\Administrator\miniconda3\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "E:\project\weilan\YOLOv5-Lite-master\train.py", line 12, in <module>
    import torch.distributed as dist
  File "D:\Users\Administrator\miniconda3\lib\site-packages\torch\__init__.py", line 117, in <module>
    raise err
OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "D:\Users\Administrator\miniconda3\lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies.
Traceback (most recent call last):
  File "E:/project/weilan/YOLOv5-Lite-master/train.py", line 544, in <module>
    train(hyp, opt, device, tb_writer)
  File "E:/project/weilan/YOLOv5-Lite-master/train.py", line 203, in train
    pad=0.5, prefix=colorstr('val: '))[0]
  File "E:\project\weilan\YOLOv5-Lite-master\utils\datasets.py", line 142, in create_dataloader
    collate_fn=LoadImagesAndLabels.collate_fn4 if quad else LoadImagesAndLabels.collate_fn)
  File "E:\project\weilan\YOLOv5-Lite-master\utils\datasets.py", line 155, in __init__
    self.iterator = super().__iter__()
  File "D:\Users\Administrator\miniconda3\lib\site-packages\torch\utils\data\dataloader.py", line 352, in __iter__
    return self._get_iterator()
  File "D:\Users\Administrator\miniconda3\lib\site-packages\torch\utils\data\dataloader.py", line 294, in _get_iterator
    return _MultiProcessingDataLoaderIter(self)
  File "D:\Users\Administrator\miniconda3\lib\site-packages\torch\utils\data\dataloader.py", line 801, in __init__
    w.start()
  File "D:\Users\Administrator\miniconda3\lib\multiprocessing\process.py", line 112, in start
    self._popen = self._Popen(self)
  File "D:\Users\Administrator\miniconda3\lib\multiprocessing\context.py", line 223, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "D:\Users\Administrator\miniconda3\lib\multiprocessing\context.py", line 322, in _Popen
    return Popen(process_obj)
  File "D:\Users\Administrator\miniconda3\lib\multiprocessing\popen_spawn_win32.py", line 89, in __init__
    reduction.dump(process_obj, to_child)
  File "D:\Users\Administrator\miniconda3\lib\multiprocessing\reduction.py", line 60, in dump
    ForkingPickler(file, protocol).dump(obj)
BrokenPipeError: [Errno 32] Broken pipe

Process finished with exit code 1
 

原因:多进程加载数据,超过cpu核数了,

解决方法,减小workers,我的改为4可以了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值