You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下Yolo训练触发缓冲区溢出崩溃问题求助

Darknet(AlexeyAB分支)训练缓冲区溢出崩溃问题解决

问题现象

此前训练正常,本地运行AlexeyAB分支Darknet做YOLO训练时,程序仅运行短时间、未完成一个epoch就触发缓冲区溢出崩溃。GPU/CPU内存仅初始阶段有小幅波动,后续状态正常直到崩溃。

报错信息

v3 (mse loss, Normalizer: (iou: 0.75, obj: 1.00, cls: 1.00) Region 106 Avg (IOU: 0.000000), count: 6, class_loss = 13507.688477, iou_loss = 1962709219740518995334266880.000000, total_loss = 1962709219740518995334266880.000000 
 total_bbox = 5305, rewritten_bbox = 0.245052 % 

 seen 64, trained: 266 K-images (4 Kilo-batches_64) 
Learning Rate: 0.001, Momentum: 0.9, Decay: 0.0005
 Detection layer: 82 - type = 28 
 Detection layer: 94 - type = 28 
 Detection layer: 106 - type = 28 
 If error occurs - run training with flag: -dont_show 
Resizing, random_coef = 1.40 

 608 x 608 
 try to allocate additional workspace_size = 1138.23 MB 
 CUDA allocate done! 
Loaded: 0.000037 seconds

 (next mAP calculation at 230 iterations) 
 131: 193631524938497389469106176.000000, 193631524938497389469106176.000000 avg loss, 0.001000 rate, 38.027819 seconds, 268288 images, -1.000000 hours left
*** buffer overflow detected ***: terminated

已排查内容

已知该报错常因标签含\r导致,通过Python检查标签文件,确认格式正常:

0 0.2846875 0.001953125 0.008125 0.00390625
0 0.6734375 0.30859375 0.014375 0.1953125
0 0.298125 0.626953125 0.01 0.16015625
0 0.285625 0.912109375 0.0125 0.17578125

解决方法

  1. 减小workspace_size参数
    在yolov3.cfg中手动降低workspace_size数值(比如从默认值改为600或800),避免大内存分配操作触发缓冲区溢出。

  2. 关闭动态尺寸调整
    训练命令中添加-dont_resize参数,禁用随机调整输入尺寸的功能,减少内存波动带来的潜在问题。

  3. 检查数据集完整性
    遍历数据集,删除无法正常读取的损坏图片及对应标签文件,排除数据损坏导致的异常。

  4. 降低batch_size
    如果当前batch_size设置较大(比如64),尝试改为32或16,降低单步训练的内存负载。

  5. 更新并重新编译Darknet
    拉取AlexeyAB分支的最新代码重新编译,该分支持续修复bug,可能已解决此缓冲区溢出问题。

  6. 核对CUDA与cuDNN版本兼容性
    确保使用的CUDA、cuDNN版本与编译Darknet时的配置匹配,版本不兼容易引发内存管理异常。

内容的提问来源于stack exchange,提问作者Ahmed SALIHI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:34:52