当前位置: 首页 > news >正文

yolo模型微调训练

一、训练脚本

from ultralytics import YOLO def main(): model = YOLO("yolo26n.pt") model.train( data="E:/vision_code/yolo_wt/data/data.yaml", imgsz=640, epochs=100, batch=15, device=0, workers=0, save_period=10 ) if __name__ == "__main__": main()

二、训练参数含义

参数示例含义建议
modelyolo26n.pt训练基座模型310B 部署优先ns
datadata.yaml数据集配置文件指向 Roboflow 导出的data.yaml
epochs100训练轮数先用50-100
batch4每批训练图片数量4GB 显存建议2-4
imgsz640输入图片尺寸通用用640
device0训练设备GPU 用0,CPU 用cpu
workers0数据加载线程数Windows 建议0
optimizerauto优化器新手用auto
lr00.001初始学习率微调可用0.001,也可默认
patience30早停等待轮数20-50
saveTrue是否保存训练结果默认保存
save_period10每隔多少轮保存一次权重想保留中间模型用10
projectruns/detect训练结果保存目录可自定义
namehelmet_yolo26n本次训练名称方便区分实验
exist_okTrue是否允许覆盖同名目录不想覆盖就用False
pretrainedTrue是否加载预训练权重微调建议True
resumeFalse是否从中断处继续训练中断后可用True
ampTrue自动混合精度训练GPU 训练建议开启
cacheFalse是否缓存图片到内存/磁盘内存够可用disk
seed0随机种子复现实验用
verboseTrue是否输出详细日志默认即可

三、输出参数含义

字段含义怎么看
GPU_mem当前训练占用的 GPU 显存越低越省显存
box_loss

框的位置损失,越低说明预测框越接近真实框

越低越好
cls_loss类别损失,越低说明分类越准越低越好
dfl_loss边框分布损失,辅助定位,越低越好越低越好
Instances当前 batch 中目标框数量表示这一批图片里有几个标注目标
Size输入图片尺寸你设置的是640
71/137当前 epoch 内 batch 进度共 137 个 batch,当前第 71 个
4.1it/s每秒处理多少个 batch越高训练越快
20.1s<16.0s已用时间/预计剩余时间进度条时间信息

四、TensorBoard 查看 YOLO 训练过程

1. 安装 TensorBoard

pip install -U tensorboard

确认能启动:

tensorboard --version

2. 开启 Ultralytics 的 TensorBoard 日志

查看当前设置:

yolo settings

如果看到:

tensorboard: False

执行:

yolo settings tensorboard=True

再次确认:

yolo settings

确保是:

tensorboard: True

3. 开始训练

命令行训练示例:

yolo detect train model=yolo26n.pt data=E:/vision_code/yolo_wt/data/data.yaml imgsz=640 epochs=50 batch=4 device=0 workers=0 project=E:/vision_code/yolo_wt/train_wt/runs name=helmet_yolo26n

Python 脚本训练示例:

from ultralytics import YOLO def main(): model = YOLO("yolo26n.pt") model.train( data="E:/vision_code/yolo_wt/data/data.yaml", imgsz=640, epochs=50, batch=4, device=0, workers=0, project="E:/vision_code/yolo_wt/train_wt/runs", name="helmet_yolo26n", plots=True, ) if __name__ == "__main__": main()

4. 确认是否生成 TensorBoard 日志

训练开始后或训练结束后,执行:

Get-ChildItem -Recurse E:\vision_code\yolo_wt\train_wt\runs -Filter "events.out.tfevents*"

如果能看到类似:

events.out.tfevents.171xxxx

说明 TensorBoard 日志生成成功。

5. 启动 TensorBoard

推荐指向总的runs目录:

tensorboard --logdir E:\vision_code\yolo_wt\train_wt\runs

如果只想看某一次训练:

tensorboard --logdir E:\vision_code\yolo_wt\train_wt\runs\helmet_yolo26n

浏览器打开:

http://localhost:6006

6. 在 TensorBoard 里看什么

主要看Scalars页面:

曲线含义趋势
train/box_loss训练集框回归损失越低越好
train/cls_loss训练集分类损失越低越好
train/dfl_loss框定位细节损失越低越好
val/box_loss验证集框损失越低越好
val/cls_loss验证集分类损失越低越好
metrics/precision准确率,误检少不少越高越好
metrics/recall召回率,漏检少不少越高越好
metrics/mAP50宽松检测精度越高越好
metrics/mAP50-95严格综合检测精度越高越好

五、相关结果图片说明

1.不同置信度阈值下,模型的综合检测效果怎么样。

F1 分数,它综合了:

Precision:预测出来的框有多少是真的,误检少不少
Recall:真实目标有没有都找出来,漏检少不

all classes 0.80 at 0.393:

当置信度阈值大约设为 0.393 时,F1 最高,大约是 0.80

2.Precision-Confidence Curve,意思是:不同置信度阈值下,模型预测结果的“准确率”变化。

横轴:Confidence,置信度阈值。阈值越高,模型越严格,只保留更有把握的框。

纵轴:Precision,精确率,可以理解为:模型预测出来的 helmet 里面,有多少是真的 helmet

all classes 1.00 at 0.987,当置信度阈值设到 0.987 左右时,Precision 可以达到 1.00

3.Precision-Recall Curve,简称PR 曲线,用来看模型在“少误检”和“少漏检”之间的整体表现。

横轴:Recall,召回率,表示真实的安全帽里,模型找出来了多少。
Recall 高 = 漏检少


纵轴:Precision,精确率,表示模型预测出来的安全帽里,有多少是真的安全帽。
Precision 高 = 误检少


all classes 0.838 mAP@0.5,意思是:这个模型在 IoU=0.5 标准下,mAP 是 0.838

IoU 是预测框和真实标注框的重叠比例

mAP=0.838 是整体检测得分

判断模型整体好不好,看的是整条 PR 曲线和 mAP

4.Recall-Confidence Curve,意思是:不同置信度阈值下,模型的召回率怎么变化。

横轴:Confidence,置信度阈值。阈值越高,模型越严格,只保留更有把握的检测框。

纵轴:Recall,召回率,表示真实存在的安全帽里,模型找出来了多少。

Recall 高 = 漏检少,Recall 低 = 漏检多

all classes 0.95 at 0.000,意思是:当 conf 接近 0 时,Recall 最高,大约 0.95,也就是在非常宽松的情况下,模型最多能找出约 95% 的真实安全帽。

5.混淆矩阵 Confusion Matrix,用来看模型“预测对了多少、漏检多少、误检多少”。

横轴 True:真实类别

纵轴 Predicted:模型预测类别

正确检测:191 个

漏检:28 个

误检:72 个

6.归一化混淆矩阵 Confusion Matrix Normalized。上图同一个意思,只是把数量换成了比例。

六、分布式训练

支持单机多卡, 多机单卡

http://www.cnnetsun.cn/news/2940222.html

相关文章:

  • Linux 调度器优化:从 CFS 到实时调度的性能调优实践
  • 研电赛深度学习项目全流程实战:从模型轻量化到嵌入式部署
  • 终极Direct3D 8转换工具:如何让经典游戏在现代Windows系统重生
  • 星源智ω-EVA发布:具身智能的下一战,是行动闭环
  • D2R Pixel Bot:暗黑破坏神2重制版终极自动化解决方案
  • 鸿蒙 PC 正在诞生“第二操作系统”:Agent Runtime 架构揭秘
  • RV1126B开发环境搭建全攻略:从Ubuntu配置到固件烧录
  • 深度解析Dense技术:从全连接层到密集部署的高效计算范式
  • 深度解析macOS核心架构:从Darwin内核到Apple Silicon演进
  • 终极指南:如何免费解锁9大网盘高速下载,告别限速烦恼
  • Tushare Pro:Python量化投资金融数据获取与本地化存储实战指南
  • 告别手动排版!EZCard卡牌批量生成器让桌游设计效率提升500%
  • Claude-skill gstack
  • 部署文档 - Kubernetes监控与日志收集系统
  • 让老旧安卓电视重获新生:MyTV-Android轻量直播应用体验分享
  • 埃森哲AI架构师揭秘:让AI学会“看人下菜碟“的省力新招法
  • 【Springboot毕设全套源码+文档】基于SpringBoot的显卡之家的设计与实现(丰富项目+远程调试+讲解+定制)
  • 第 28 篇:重传机制:超时与快速重传
  • Oracle异步描述符调整等待事件:原理、诊断与优化实战
  • OpenRouter Fusion 搅动 AGI 格局:当「多模型协作」打平「单模型最强」,通往 AGI 的路可能不止一条 - 微元算力(weytoken)
  • 笔记本性能解锁指南:ACPI修改与功耗调校实战
  • 2026论文隐藏级降AI率网站大曝光:三步直降AIGC率至安全阈值!
  • B2B市场人与销售协同作战:从甩锅到共赢的协作机制设计
  • 4213432
  • SaaS版还是私有化部署?TMS选型的“灵魂拷问”终于有答案了
  • 66、HTTP协议(课外拓展)---------网络编程
  • ArcSWAT模型Error 63输出转换错误:成因解析与系统化解决方案
  • 基于multisim的0-200度数字温度计
  • Xceed WPF Toolkit:让Windows桌面应用开发效率提升300%的秘密武器
  • 【毕业设计】安全认证型校园论坛系统的设计与实现(人脸识别 + 实名认证) 基于 SpringBoot 的实名人脸识别校园社区论坛系统研发(源码+文档+远程调试,全bao定制等)