SuperAPI AI 工具集

yolo-training

数据与分析

查看项目

更新于 10-16 05:47

技能介绍

用途:当用户提出提升 mAP、模型过拟合、训练发散、读取 results.csv 或解读结果等需求时,用该技能先读训练记录再改参数,results.csv 与混淆矩阵通常已指出问题所在。

主要能力:按尝试成本从低到高排序排查——先看轮数与调度(欠训练表现类似其他问题,排除成本仅为时间);再调数据增强(影响泛化差距且不增加每轮算力);然后调损失权重与学习率;模型规模仅在训练损失仍在下降且训练/验证曲线接近(欠拟合)时才放大;分辨率因算力随 imgsz 平方增长,640 到 1280 约需 4 倍预算,且预训练权重迁移变差,需用目标尺寸论证而非默认首选;数据、标注质量与类别平衡上限最高但最慢,包内无数据集分析工具,需自行写脚本并看图。

诊断循环:用 pandas 读取 runs/detect/train/results.csv,去除列名空格,打印末 10 行的 epoch、train/box_loss、val/box_loss、metrics/mAP50(B)、metrics/mAP50-95(B),并输出最佳 epoch 与总轮数。随后依次看:最佳轮数对比总轮数(欠/过/合适)、训练与验证损失趋势(泛化差距方向)、mAP50 与 mAP50-95(分类召回 vs 定位)、工作点 P 与 R(过度抑制 vs 过度触发)、各类 AP 分布(单类损坏还是整体弱)、混淆矩阵背景行列(误报 vs 漏检)。references/diagnostics.md 将每种模式映射到原因与旋钮,并列出调旋钮前需排除项;references/task-notes.md 覆盖 detect、segment、semantic、pose、obb、classify、depth 细节。

默认陷阱:optimizer=auto 会忽略 lr0 与 momentum,按迭代数在 MuSGD(lr 0.01)与 AdamW(0.002*5/(4+nc))间切换并强制 warmup_bias_lr=0,跨阈值会静默换优化器;nbs=64 归一化损失,batch 不按预期缩放学习率;close_mosaic=10 在最后 10 轮关闭 mosaic,mAP 末段跳升源于此;detect 的 fitness 仅用 mAP50-95,best.pt 与 patience 忽略 P、R、mAP50;max_det=300 会截断密集场景验证;YOLO26 end2end 模型无 NMS,iou 无效而 agnostic_nms 仍生效。

推荐配方:yolo train model=yolo26s.pt data=my-data.yaml epochs=200 imgsz=640 batch=16 optimizer=AdamW lr0=0.001 lrf=0.01 cos_lr=True warmup_epochs=3 patience=50 close_mosaic=20。每次只改一项并固定随机种子,小数据集跑动噪声常达 0.5 到 1.0 mAP,低于约 1 点的提升需三个种子确认。

限制:资料未提供数据集分析工具、具体平台与收费信息。