跳转至内容

YOLO26训练秘籍

简介

本指南记录了确切的 训练 用于生成官方 YOLO26 预训练检查点的 COCO每个 超参数 .pt 此处显示的都已嵌入到发布的

权重中,并且可以通过编程方式进行检查。

本指南适用于哪些人群?

本指南面向希望了解官方YOLO26检查点背后细节的实践者 — 不仅仅是架构,还包括塑造其性能的学习率调度、增强流水线和损失权重。利用这些信息,在您自己的数据上进行微调时做出明智的选择。

查看训练参数

每个Ultralytics检查点都存储了用于生成它的完整训练配置。您可以随时检查这些设置:

检查检查点训练参数

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])
import torch

# Load any official checkpoint
ckpt = torch.load("yolo26n.pt", map_location="cpu", weights_only=False)

# Print all training arguments
for k, v in sorted(ckpt["train_args"].items()):
    print(f"{k}: {v}")

这适用于任何 .pt 检查点 — 无论是官方发布版本还是您自己微调的模型。有关可配置训练参数的完整列表,请参阅 训练配置参考.

训练概述

所有YOLO26基础模型均在COCO数据集上以640x640分辨率进行训练,使用MuSGD优化器,批量大小为128。模型从中间预训练权重初始化,并通过进化搜索找到的超参数进行优化。所有模型尺寸的完整训练日志和指标可在Ultralytics Platform上查看:

所有尺寸的关键设计选择:

  • 端到端训练 (end2end=True) 采用无NMS的一对一头部
  • MuSGD优化器,将SGD与Muon风格的正交化更新相结合,用于卷积权重
  • 大量mosaic数据增强 (约0.9-1.0的概率) 在最后10个epoch中禁用 (close_mosaic=10)
  • 激进的尺度增强 (0.56-0.95),以处理不同尺寸的目标
  • 大多数尺寸采用最小的旋转/剪切,保持几何失真较低

各模型尺寸的超参数

优化器和学习率

设置NSMLX
optimizerMuSGDMuSGDMuSGDMuSGDMuSGD
lr00.00540.000380.000380.000380.00038
lrf0.04950.8820.8820.8820.882
momentum0.9470.9480.9480.9480.948
weight_decay0.000640.000270.000270.000270.00027
warmup_epochs0.980.990.990.990.99
epochs24570806040
batch128128128128128
imgsz640640640640640

学习率策略

N模型使用了更高的初始学习率和陡峭的衰减 (lrf=0.0495),而S/M/L/X模型使用了低得多的初始学习率和更平缓的调度 (lrf=0.882)。这反映了小型模型与大型模型之间不同的收敛动态——小型模型需要更激进的更新才能有效学习。

损失权重

设置NSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

N模型优先考虑DFL损失,而S/M/L/X模型则将重点转向边界框回归。分类损失在所有尺寸中保持相对一致。

数据增强流水线

有关每种技术的详细解释,请参阅YOLO数据增强指南

设置NSMLX
mosaic0.9090.9920.9920.9920.992
mixup0.0120.050.4270.4270.427
copy_paste0.0750.4040.3040.4040.404
scale0.5620.90.950.950.95
fliplr0.6060.3040.3040.3040.304
degrees1.11~0~0~0~0
shear1.46~0~0~0~0
translate0.0710.2750.2750.2750.275
hsv_h0.0140.0130.0130.0130.013
hsv_s0.6450.3530.3530.3530.353
hsv_v0.5660.1940.1940.1940.194
bgr0.1060.00.00.00.0

大型模型整体上使用更激进的增强(更高的mixupcopy-paste尺度增强),因为它们具有更大的容量并受益于更强的正则化。N模型是唯一具有显著旋转剪切BGR增强的尺寸。

内部训练参数

高级:内部管道参数

检查点还包含在内部训练管道中使用的参数,但这些参数 作为用户可配置设置公开于 default.yaml:

设置描述NSMLX
muon_wMuSGD 中的 Muon 更新权重0.5280.4360.4360.4360.436
sgd_wMuSGD 中的 SGD 更新权重0.6740.4790.4790.4790.479
cls_w内部分类权重2.743.483.483.483.48
o2m一对多头部损失权重1.00.7050.7050.7050.705
topkTop-k 标签分配85555

这些被记录下来以确保可复现性,但在微调时无需设置。有关更多详细信息,请参阅常见问题

微调指南

当在您自己的数据集上微调 YOLO26 时,您无需复制完整的预训练方案。预训练权重已编码了来自 COCO 训练的增强和优化知识。有关更通用的训练最佳实践,请参阅模型训练技巧

从简开始

使用默认设置进行微调

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
yolo train model=yolo26n.pt data=your-dataset.yaml epochs=100 imgsz=640

使用默认设置进行微调是一个强大的基线。仅在有特定原因时才调整超参数。

何时调整

Small datasets (< 1,000 images):

  • 降低数据增强强度: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • 降低学习率: lr0=0.001
  • 使用更少的 个 epoch 并带有耐心: epochs=50, patience=20
  • 考虑冻结骨干层: freeze=10

大型数据集(> 50,000 张图像):

  • 更紧密地匹配预训练方案
  • 考虑 optimizer=MuSGD 用于长时间运行
  • 增加数据增强: mosaic=1.0, mixup=0.3, scale=0.9

领域特定图像(航空、医学、水下):

  • 增加 flipud=0.5 如果垂直方向变化较大
  • 增加 degrees 如果物体以任意旋转出现
  • 调整 hsv_shsv_v 如果光照条件与COCO数据集显著不同

对于自动化超参数优化,请参阅超参数调优指南

选择模型尺寸

模型最适合批大小指导
YOLO26n边缘设备、移动设备、CPU实时运行消费级GPU上的大批次 (64-128)
YOLO26s速度与精度平衡中等批次 (32-64)
YOLO26m适度计算量下实现更高精度较小批次 (16-32)
YOLO26lGPU可用时的高精度小批次 (8-16) 或多GPU
YOLO26x最高精度,服务器部署小批次 (4-8) 或多GPU

对于导出和部署选项,请参阅导出指南模型部署选项

常见问题

如何查看任何检查点使用的确切超参数?

使用以下方式加载检查点: torch.load() 并访问 train_args 键,或使用 model.ckpt["train_args"] 结合Ultralytics API。请参阅 查看训练参数 获取完整示例。

为什么不同模型尺寸的训练轮次(epoch)数量不同?

更大的模型在COCO数据集上收敛更快,因为它们具有更大的容量。N模型需要245个epoch,而X模型仅需要40个。在您自己的数据集上进行微调时,最佳的epoch数量取决于数据集的大小和复杂性,而非模型大小。使用早停机制 (patience) 自动找到正确的停止点。

微调时是否应该使用MuSGD?

何时 optimizer=auto (默认值),Ultralytics自动选择 MuSGD 用于较长的训练运行 (>10,000次迭代) 和 AdamW 用于较短的训练运行。您可以显式设置 optimizer=MuSGD 如果您愿意。有关优化器选择的更多信息,请参阅 训练文档.

什么是 muon_w, sgd_w, cls_w, o2mtopk 检查点中的?

这些是生成基础检查点的训练管道中的内部参数。它们被存储用于重现性,但是 用户可配置的设置 default.yaml。在微调时,您无需设置它们。请参阅 内部训练参数 详情请见。

我能否从头开始复现精确的预训练过程?

这些检查点是使用一个内部训练分支生成的,该分支包含公共代码库中没有的额外功能(例如可配置的 o2m 权重和 cls_w)。您可以使用本页上记录的超参数和公共 Ultralytics 软件包获得非常接近的结果,但精确重现需要内部分支。



📅 创建于 7 天前 ✏️ 更新于 5 天前
Y-T-Gdependabotraimbekovm

评论