Link to this sectionYOLO26 训练方案#
Link to this section介绍#
This guide documents the exact training recipe used to produce the official YOLO26 pretrained checkpoints on COCO. Every hyperparameter shown here is already embedded in the released .pt weights and can be inspected programmatically.
了解基础模型是如何训练的,有助于你在 微调 时做出更好的决策:保留哪些 数据增强,调整哪些 损失函数 权重,以及针对你的数据集大小,什么样的优化器设置效果最好。
本指南适用于希望了解官方 YOLO26 检查点包含哪些内容的从业者——不仅是架构,还包括塑造其性能的 学习率 计划、增强流水线和损失权重。利用这些信息,在你自己的数据上进行微调时做出明智的选择。
Link to this section检查训练参数#
每个 Ultralytics 检查点都存储了用于生成它的完整训练配置。你可以随时检查这些设置:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])这适用于任何 .pt 检查点——无论是官方发布版本还是你自己的微调模型。有关可配置训练参数的完整列表,请参阅 训练配置参考。
Link to this section训练概览#
所有 YOLO26 基础模型均在 COCO 上以 640x640 分辨率使用 MuSGD 优化器和 batch size 128 进行训练。模型从中间预训练权重初始化,并通过进化搜索找到的超参数进行精炼。每个模型大小的完整训练日志和指标均可在 Ultralytics Platform 上获取:
所有尺寸的关键设计选择:
- 端到端训练 (
end2end=True),配备无 NMS 的一对一头部 - MuSGD 优化器,将 SGD 与用于卷积权重的 Muon 式正交更新相结合
- 重度 mosaic 增强(约 0.9-1.0 概率),在最后 10 个 epoch 禁用 (
close_mosaic=10) - 激进的尺度增强 (0.56-0.95),以处理不同大小的物体
- 对于大多数尺寸,最小化旋转/剪切,保持低几何畸变
Link to this section各模型尺寸的超参数#
Link to this section优化器和学习率#
| 设置 | N | S | M | L | X |
|---|---|---|---|---|---|
optimizer | MuSGD | MuSGD | MuSGD | MuSGD | MuSGD |
lr0 | 0.0054 | 0.00038 | 0.00038 | 0.00038 | 0.00038 |
lrf | 0.0495 | 0.882 | 0.882 | 0.882 | 0.882 |
momentum | 0.947 | 0.948 | 0.948 | 0.948 | 0.948 |
weight_decay | 0.00064 | 0.00027 | 0.00027 | 0.00027 | 0.00027 |
warmup_epochs | 0.98 | 0.99 | 0.99 | 0.99 | 0.99 |
epochs | 245 | 70 | 80 | 60 | 40 |
batch | 128 | 128 | 128 | 128 | 128 |
imgsz | 640 | 640 | 640 | 640 | 640 |
N 模型使用了较高的初始学习率和陡峭的衰减 (lrf=0.0495),而 S/M/L/X 模型使用了较低的初始 LR 和较平缓的计划 (lrf=0.882)。这反映了小型模型与大型模型在收敛动态上的差异——小型模型需要更激进的更新才能有效学习。
Link to this section损失权重#
| 设置 | N | S | M | L | X |
|---|---|---|---|---|---|
box | 5.63 | 9.83 | 9.83 | 9.83 | 9.83 |
cls | 0.56 | 0.65 | 0.65 | 0.65 | 0.65 |
dfl | 9.04 | 0.96 | 0.96 | 0.96 | 0.96 |
N 模型优先考虑 DFL 损失,而 S/M/L/X 模型将重点转移到 边界框 回归上。分类损失在所有尺寸中保持相对一致。
Link to this section增强流水线#
有关每种技术的详细说明,请参阅 YOLO 数据增强指南。
| 设置 | N | S | M | L | X |
|---|---|---|---|---|---|
mosaic | 0.909 | 0.992 | 0.992 | 0.992 | 0.992 |
mixup | 0.012 | 0.05 | 0.427 | 0.427 | 0.427 |
copy_paste | 0.075 | 0.404 | 0.304 | 0.404 | 0.404 |
scale | 0.562 | 0.9 | 0.95 | 0.95 | 0.95 |
fliplr | 0.606 | 0.304 | 0.304 | 0.304 | 0.304 |
degrees | 1.11 | ~0 | ~0 | ~0 | ~0 |
shear | 1.46 | ~0 | ~0 | ~0 | ~0 |
translate | 0.071 | 0.275 | 0.275 | 0.275 | 0.275 |
hsv_h | 0.014 | 0.013 | 0.013 | 0.013 | 0.013 |
hsv_s | 0.645 | 0.353 | 0.353 | 0.353 | 0.353 |
hsv_v | 0.566 | 0.194 | 0.194 | 0.194 | 0.194 |
bgr | 0.106 | 0.0 | 0.0 | 0.0 | 0.0 |
大型模型整体上使用更激进的增强(更高的 mixup、copy-paste 和 scale),因为它们有更大的容量,并能从更强的 正则化 中受益。N 模型是唯一具有显著 旋转、剪切 和 BGR 增强的尺寸。
Link to this section内部训练参数#
进阶:内部流水线参数
检查点还包含在内部训练流水线中使用,但并未在 default.yaml 中作为用户可配置设置公开的参数:
| 设置 | 描述 | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | MuSGD 中的 Muon 更新权重 | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | MuSGD 中的 SGD 更新权重 | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | 内部分类权重 | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | 一对多检测头损失权重 | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | Top-k 标签分配 | 8 | 5 | 5 | 5 | 5 |
这些参数被记录是为了保证可重复性,但在微调时无需设置。详情请参阅 FAQ。
Link to this section微调指南#
当你在自己的数据集上微调 YOLO26 时,无需完整复刻预训练方案。预训练权重已经包含了从 COCO 训练中获得的增强和优化知识。有关通用训练的最佳实践,请参阅 模型训练技巧。
Link to this section从简单开始#
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)使用默认值微调是一个强大的基准。除非有明确的理由,否则只需调整超参数。
Link to this section何时进行调整#
小型数据集(< 1,000 张图像):
- 降低增强强度:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - 降低学习率:
lr0=0.001 - 减少 epochs 次数并配合早停:
epochs=50,patience=20 - 考虑冻结主干层:
freeze=10
大型数据集(> 50,000 张图像):
- 更紧密地匹配预训练方案
- 考虑在长周期训练中使用
optimizer=MuSGD - 增加增强:
mosaic=1.0,mixup=0.3,scale=0.9
特定领域图像(航拍、医学、水下):
- 如果垂直方向有变化,增加
flipud=0.5 - 如果物体出现任意角度旋转,增加
degrees - 如果光照条件与 COCO 有显著差异,调整
hsv_s和hsv_v
关于自动超参数优化,请参阅 超参数调优指南。
Link to this section选择模型大小#
| 模型 | 最佳用途 | 批次大小 (Batch Size) 指导 |
|---|---|---|
| YOLO26n | 边缘设备、移动端、CPU 实时运行 | 消费级 GPU 上的大批次 (64-128) |
| YOLO26s | 速度与准确度平衡 | 中等批次 (32-64) |
| YOLO26m | 中等算力下的更高准确度 | 小批次 (16-32) |
| YOLO26l | GPU 可用时的高准确度 | 小批次 (8-16) 或多 GPU |
| YOLO26x | 最大准确度,服务器部署 | 小批次 (4-8) 或多 GPU |
Link to this section常见问题 (FAQ)#
Link to this section我该如何查看任何检查点所使用的确切超参数?#
使用 torch.load() 加载检查点并访问 train_args 键,或者在 Ultralytics API 中使用 model.ckpt["train_args"]。查看 检查训练参数 获取完整示例。
Link to this section为什么每个模型大小的 epoch 计数不同?#
更大的模型在 COCO 上收敛得更快,因为它们具有更强的容量。N 模型需要 245 个 epoch,而 X 模型仅需 40 个。在自己的数据集上微调时,最佳的 epoch 数取决于数据集的大小和复杂度,而不是模型的大小。使用早停 (patience) 来自动寻找合适的停止点。
Link to this section我应该在微调时使用 MuSGD 吗?#
当 optimizer=auto(默认)时,Ultralytics 会自动为较长的训练运行(>10,000 次迭代)选择 MuSGD,并为较短的训练选择 AdamW。如果愿意,你可以明确设置 optimizer=MuSGD。有关优化器选择的更多信息,请参阅 训练文档。
Link to this section检查点中的 muon_w、sgd_w、cls_w、o2m 和 topk 是什么?#
这些是生成基础检查点的训练流水线中的内部参数。它们存储是为了可重复性,但不是 default.yaml 中用户可配置的设置。微调时无需设置它们。详情请参阅 内部训练参数。
Link to this section我能从零开始复刻精确的预训练过程吗?#
这些检查点是使用一个内部训练分支生成的,该分支具有公共代码库中不具备的其他功能(如可配置的 o2m 权重和 cls_w)。使用本页面记录的超参数并配合公共的 Ultralytics 包可以得到非常接近的结果,但要实现精确复刻需要该内部分支。