YOLOv7训练10540张图像数据集时内存不足问题求助
解决YOLOv7 CPU训练内存不足问题
核心原因
你的报错是因为CPU训练时设置的batch-size过大,加上数据加载workers的额外内存开销,导致CPU内存不足以容纳当前批次的图像数据。
具体解决步骤
- 大幅降低batch-size:CPU内存容量和带宽远不如GPU,你当前设置的
--batch-size 160完全超出CPU承载能力。先尝试将batch-size降到8-16区间,若仍报错可继续降到4甚至2,示例命令:!python train.py --img 640 --batch-size 8 --epochs 1 --data "data\custom.yaml" --cfg "cfg\training\yolov7-custom.yaml" --weights yolov7.pt --name yolov7-custom --device cpu --workers 2 --hyp "data\hyp.scratch.custom.yaml" - 减少workers数量:
--workers 5会同时开启多个数据加载进程,进一步占用内存。Windows系统建议设为0,其他系统可降到1-2。 - 缩小输入图像尺寸:将
--img 640改为416或320,减少单张图像的内存占用,代价是模型精度会有轻微下降。 - 释放系统内存:关闭后台无关程序,给训练进程腾出更多可用内存。
长期最优方案
如果有可用GPU,优先改用GPU训练(修改参数--device 0),GPU的显存架构更适配大批次深度学习训练,能从根本上解决这类内存瓶颈问题。
内容的提问来源于stack exchange,提问作者Liferafter
相关产品推荐
相关产品推荐

