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

YOLOv5单标签自定义训练mAP始终为0,求解决方案

YOLOv5单标签训练mAP始终为0的排查方案

问题现象

尝试进行YOLOv5单标签自定义训练,已完成YAML文件配置,但无论训练多少epoch,mAP值始终为0,训练日志如下:

Epoch   gpu_mem       box       obj       cls    labels  img_size
   1/2    0.614G   0.07749   0.03705         0         7       640: 100% 15/15 [00:01<00:00, 10.99it/s]
           Class     Images     Labels          P          R     mAP@.5 mAP@.5:.95: 100% 3/3 [00:00<00:00, 26.59it/s]
             all         12         14          0          0          0          0

 Epoch   gpu_mem       box       obj       cls    labels  img_size
   2/2    0.614G   0.07758   0.03295         0         5       640: 100% 15/15 [00:01<00:00, 10.98it/s]
           Class     Images     Labels          P          R     mAP@.5 mAP@.5:.95: 100% 3/3 [00:00<00:00, 28.13it/s]
             all         12         14          0          0          0          0

排查方向及解决方法

  • 检查数据集标注格式
    • 确认标注文件(.txt)符合YOLO要求:每行格式为class_id x_center y_center width height,所有坐标为归一化后的值(相对于图片宽高),绝对坐标会导致模型无法识别有效标签。
    • 单标签任务中,class_id必须为0(YOLO类别从0开始索引),若标注写了其他数值,会与YAML配置不匹配。
  • 验证YAML配置文件
    • 确保nc(类别数)设为1,names列表仅包含一个类别名称,例如names: ['your_class']。
    • 检查train/val/test路径是否正确,对应文件夹内图片与标注文件一一对应(如img1.jpg对应img1.txt)。
  • 排查数据集问题
    • 当前验证集仅12张图片、14个标签,样本量过小会导致模型无法学习有效特征,建议扩充数据集至至少几百张训练样本。
    • 确认验证集标注文件无缺失或损坏,带标签的图片均有对应.txt文件。
  • 检查损失异常原因
    • 日志中cls损失始终为0,说明模型未接收类别损失信号。排查训练命令是否误加--nosave等禁用类别训练的参数,或预训练权重类别数不匹配(建议用yolov5s.pt这类通用权重,避免用多类别训练后的权重)。
  • 调整训练参数
    • 增加训练epoch数(如50-100),当前仅训练2个epoch,模型未完成收敛。
    • 针对小数据集调整学习率,可尝试设置--lr0 0.001降低初始学习率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:45:15