跳转至

1 YOLO 训练参数解释

这些参数是 YOLOv8目标检测任务(detect)中用于训练(train)模型的超参数和配置。以下是参数的详细解释:


1. 任务模式

task: detect
mode: train
  • task: detect:表示任务是目标检测(detection)
  • mode: train:表示当前是训练模式,如果是推理(inference)模式,值会是 predict

2. 模型和数据

model: yolov8n.pt
data: /home/yyp/train/1-train_dataset/nw-250303153923-Person/dataset-config.yaml
  • model: yolov8n.pt:指定使用 YOLOv8nYOLOv8 nano版本)作为预训练模型

  • data: dataset-config.yaml

:指定数据集配置文件,通常包括:

  • 训练集、验证集、测试集路径
  • 类别名称
  • 类别数量

3. 训练超参数

epochs: 3000
patience: 100
batch: 96
imgsz: 640
  • epochs: 3000最大训练轮数,模型会训练 3000 轮
  • patience: 100早停机制,如果 100 轮内验证集 mAP(精度指标)没有提升,则提前停止训练。
  • batch: 96批量大小,每次训练时处理 96 张图片。
  • imgsz: 640:输入图片会调整到 640×640

4. 训练存储

save: true
save_period: -1
project: null
name: train2
exist_ok: false
save_dir: 1-train_done/detect/train2
  • save: true训练时是否保存模型true 表示保存。
  • save_period: -1:控制多少个 epoch 保存一次模型-1 代表只在训练结束时保存
  • project: null:默认项目文件夹,null 表示使用默认路径。
  • name: train2:实验名称,最终会存放在 1-train_done/detect/train2 目录中。
  • exist_ok: false:如果 false,如果 save_dir 已存在,会报错;如果 true,则覆盖。

5. 计算资源

device: cuda
workers: 8
  • device: cuda:使用 GPU 训练,如果是 cpu,则使用 CPU 训练。
  • workers: 8数据加载线程数,用于加快数据读取(多线程数据加载)。

6. 训练优化

pretrained: true
optimizer: auto
verbose: true
seed: 0
deterministic: true
single_cls: false
  • pretrained: true是否加载预训练权重true 表示加载 yolov8n.pt 作为起始点。
  • optimizer: auto自动选择优化器SGDAdam)。
  • verbose: true:是否打印详细日志
  • seed: 0随机种子,确保结果可复现。
  • deterministic: true:保证训练过程的确定性,减少浮动影响。
  • single_cls: false:是否把所有目标当作同一类false 表示保留多类别信息

7. 数据增强

hsv_h: 0.015
hsv_s: 0.7
hsv_v: 0.4
degrees: 0.0
translate: 0.1
scale: 0.5
shear: 0.0
perspective: 0.0
flipud: 0.0
fliplr: 0.5
mosaic: 1.0
mixup: 0.0
copy_paste: 0.0
auto_augment: randaugment
erasing: 0.4
  • hsv_h: 0.015色调变化范围,最大 ±0.015。
  • hsv_s: 0.7饱和度变化范围,最大 ±70%。
  • hsv_v: 0.4亮度变化范围,最大 ±40%。
  • degrees: 0.0旋转角度0.0 表示不旋转。
  • translate: 0.1平移变换,最大 ±10%。
  • scale: 0.5缩放范围,0.5 倍到 1.5 倍。
  • shear: 0.0剪切角度0.0 表示无剪切。
  • perspective: 0.0透视变换0.0 表示无变换。
  • flipud: 0.0上下翻转概率0.0 表示不会翻转。
  • fliplr: 0.5左右翻转概率0.5 表示 50% 概率翻转。
  • mosaic: 1.0马赛克数据增强1.0 表示启用。
  • mixup: 0.0混合增强(两张图片混合),0.0 表示禁用。
  • copy_paste: 0.0目标级复制粘贴增强0.0 表示禁用。
  • auto_augment: randaugment自动增强策略randaugment 代表随机增强。
  • erasing: 0.4随机擦除概率0.4 代表 40% 概率随机遮挡。

8. 训练策略

close_mosaic: 10
cos_lr: false
resume: false
amp: true
fraction: 1.0
  • close_mosaic: 10:在训练 10 轮后关闭马赛克数据增强
  • cos_lr: false:是否使用 余弦学习率调度false 表示禁用。
  • resume: false:是否从上次训练的权重继续
  • amp: true是否启用自动混合精度(AMP),加速训练。
  • fraction: 1.0使用全部数据集,如果 0.5,则使用 50% 数据。

9. 训练超参数

lr0: 0.005
lrf: 0.01
momentum: 0.937
weight_decay: 0.0005
warmup_epochs: 4.0
warmup_momentum: 0.8
warmup_bias_lr: 0.1
  • lr0: 0.005初始学习率
  • lrf: 0.01:最终学习率 = lr0 * lrf
  • momentum: 0.937SGD 动量
  • weight_decay: 0.0005权重衰减,防止过拟合。
  • warmup_epochs: 4.0预热轮数,前 4 轮使用较小学习率。
  • warmup_momentum: 0.8:预热时的动量
  • warmup_bias_lr: 0.1预热时的学习率系数

10. 损失函数权重

box: 7.5
cls: 0.5
dfl: 1.5
pose: 12.0
kobj: 1.0
nbs: 64
  • box: 7.5边界框损失权重
  • cls: 0.5分类损失权重
  • dfl: 1.5分布焦点损失(DFL)权重
  • pose: 12.0姿态估计损失
  • kobj: 1.0关键点目标损失
  • nbs: 64标准化批大小

总结

这个配置是一个高批量训练任务(batch=96, epochs=3000),启用了数据增强(马赛克、随机擦除等),使用自动混合精度(AMP),同时采用了早停策略(patience=100),有利于提高训练速度和稳定性