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

YoloV8训练参数篇

官方介绍:官方解释

对官方介绍的补充

主要包含常用的参数,需要搭配使用的参数

  1. 实验名称组合
  • project: 项目名称。这个参数用于标识当前训练任务所属的项目,方便管理和组织多个训练任务。
  • name: 实验名称。该参数为当前训练任务指定一个名称,以便于标识和区分不同的实验。
  • exist_ok: 是否覆盖现有的实验。如果设置为 True,当实验名称已经存在时,将会覆盖现有实验。默认为 False。
  • 最终实验数据会创建在project/name下,看似这没什么用,但是当大量实验时,你就知道有多香了。
  1. 矩形尺寸训练
  • imgsz: 输入图像的尺寸。这个参数确定了输入图像的大小。可以指定一个整数值表示图像的边长,也可以指定宽度和高度的组合。例如640表示图像的宽度和高度均为640像素或者[64,640]结合rect。
  • rect: 使用矩形训练,每个批次进行最小填充。设置为 True 后,训练过程中使用矩形形状的图像批次,并进行最小化填充。
  • 最终可以实现对宽≠高的尺寸下进行训练和验证,当然训练过程中使用宽=高,后续也可以转为宽≠高的模型部署,其中的差异还需要在数据上验证,官方说宽≠高训练可能会影响精度。
  1. 优化器和lr的一些必须知道的内容※※
  • lr0: 初始学习率。学习率是控制模型参数更新步幅的超参数,初始学习率确定了训练开始时的参数更新速度。
  • lrf: 最终学习率。最终学习率=lr0*lrf
  • cos_lr: 使用余弦学习率调度器。如果设置为 True,将使用余弦函数调整学习率的变化情况。default=False
  • optimizer: auto(非常重要):如果迭代次数iterations>10000初始优化器和学习率为'SGD'0.01
    • 如果是从头开始训练自己的任务auto是默认值同时也是很好的选择。
    • 如果是finetune自己的数据,那么只要你iterations超过10000你设置的lr0将失效代码如下
    • name, lr, momentum = ("SGD", 0.01, 0.9) if iterations > 10000 else ("AdamW", lr_fit, 0.9)
    • 所以微调一定要将auto更换为指定的优化器,通过官方issue给出的参考是adamlr0=1e-4or1e-5
  1. 损失函数
  • box: 边界框损失权重。用于调整边界框损失的权重,以控制其在总损失中的贡献程度
  • cls: 类别损失权重。用于调整类别损失的权重,以控制其在总损失中的贡献程度(按像素进行缩放)
  • dfl: DFL(Distribution Focal Loss)损失权重。用于调整 DFL 损失的权重,以控制其在总损失中的贡献程度。
  • pose: 姿态损失权重(仅姿态)。用于调整姿态损失的权重,以控制其在总损失中的贡献程度(仅应用于姿态相关任务)。
  • kobj: 关键点目标损失权重(仅姿态)。用于调整关键点目标损失的权重,以控制其在总损失中的贡献程度(仅应用于姿态相关任务)。
  • 最终目的:我的经验是让每一项损失的贡献尽量接近,太大和太小都不好,尤其对高精度的指标有一定影响。
  1. 预训练与早停
  • epochs: 训练的轮数。这个参数确定了模型将会被训练多少次,每一轮都遍历整个训练数据集。训练的轮数越多,模型对数据的学习就越充分,但也增加了训练时间。
  • patience: 早停的等待轮数。在训练过程中,如果在一定的轮数内没有观察到模型性能的明显提升,就会停止训练。这个参数确定了等待的轮数,如果超过该轮数仍没有改进,则停止训练。default=100
  • resume: 从最后一个检查点恢复训练。如果设置为 True,将从最后一个检查点的状态继续训练。default=false
  1. 数据增强
  • 太多了,说几个重要的,这里是官方
  • hsv_h hsv_s hsv_v:光照、饱和度、亮度
  • mosaic:将四个训练图像合并为一个,模拟不同的场景组成和物体交互。对于复杂场景的理解非常有效。0.0-1.0
  • label_smoothing: 标签平滑(label smoothing)。标签平滑是一种正则化技术,用于减少模型对训练数据的过拟合程度讲解,官方定义为训练参数,我认为也可以算是数据的一种处理,default=0
  1. 后处理指标(Predict Settings)
  • iou:非最大抑制(NMS)的IoU (Intersection Over Union)阈值。较低的值通过消除重叠框导致较少的检测,有助于减少重复。default=0.7
  • conf:设置检测的最小置信度阈值。以低于此阈值的置信度检测到的对象将被忽略。调整这个值可以帮助减少误报。default=0.25

小结

yolo的参数还有很多,同时也可以加入自己的参数进行训练,参数可以在ultralytics/cfg/default.yaml中看到名称和默认值。


http://www.mrgr.cn/news/15644.html

相关文章:

  • 【IEEE出版 | 往届会后三个月检索 | 院士杰青领衔】第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024)
  • tail 和 head命令(查看文件内容
  • 数据分析报告练习作业
  • Mysql基础练习题 595.大的国家 (力扣)
  • 【提分必看!】蓝桥杯单片机提分技巧(国一经验分享)
  • git 更改分支名称
  • SLAM的详细介绍,包括其基本原理、主要组件、算法类型、应用场景以及面临的挑战
  • 92. UE5 RPG 使用C++创建GE实现灼烧的负面效果
  • 使用手机挖掘IDOR漏洞赚取1500美元赏金
  • k8s声明式管理方式(yaml文件实现)
  • 20. Java中的fail-fast机制是什么?它是如何在集合中实现的?
  • Spring Bean加载耗时采集工具
  • python-带空格的数字层三角形
  • macos 系统 降级, 重装, 升级图文教程
  • 论文阅读——Compact Single-Feed Dual-Mode Antenna for Active RFID Tag Application
  • 华硕天选Air:开学季的性价比之巅
  • 无缝 CI/CD:如何在 Windows 环境中使用 Docker 和 Jenkins 自动化部署 .NET 应用
  • 数学符号-西格玛
  • 文件上传漏洞详解(持续更新…)
  • 加油卡系统开发,为什么加油卡系统这么受欢迎