Ultralytics 没有单独的 test mode,所谓“测试”就是 val;如果你想在测试集上跑,就用 split=test。下面只统计“公开可传”的用户参数,不把内部对象参数如 trainervalidatorsessionsave_dir 算进去。

代码规则

  • model.train(**kwargs) 会把默认配置、模型已有 overrides、cfg 文件和 kwargs 合并;其中 data/model/task 会按代码补默认值。
  • model.val(**kwargs) 也会合并配置,但代码额外把 rect 的默认值改成了 True
  • val 运行时如果 conf=None,验证器会把它设成 0.001;若任务是 OBB,则设成 0.01。训练过程中的验证还会在非 CPU 且 AMP 开启时强制 half=True

共享参数(训练和验证都可传)

参数 默认值 说明
model 配置里 None;Python API 通常继承当前已加载模型 模型权重 .pt 或结构文件 .yaml
data 配置里 None 数据集配置文件路径;训练时代码会在缺省时回退到当前任务的示例数据集。
imgsz 640 输入图像尺寸;训练影响精度/显存,验证影响速度/精度。
batch 16 批大小;训练支持整数、-1 自动批、或 0~1 显存占比自动批;验证通常用整数。
device None 运行设备,如 cpu00,1mpsnpu
workers 8 DataLoader worker 数;验证在 CPU/MPS 上代码可能自动改成 0
project None 结果保存的项目目录。
name None 本次运行名;结果落到 project/name
exist_ok False 若目标目录已存在,是否允许直接复用/覆盖。
verbose True 是否输出详细日志。
cfg None 自定义 YAML 配置文件;其值会覆盖 default.yaml,但仍低于同次调用里的显式 kwargs
compile False 是否启用 torch.compile;也可传编译模式字符串。
classes None 训练时表示“只训练这些类”;验证时表示“只评估这些类”。
single_cls False 把多类问题按单类处理。
rect 训练 False / 验证 True 是否使用矩形批处理,减少 padding;验证默认由 Model.val() 代码改成了 True
plots True 是否保存图表/可视化;训练会保存 loss/metric 曲线,验证会保存 PR 曲线、混淆矩阵等。

训练专用参数

参数 默认值 说明
epochs 100 总训练轮数。
time None 最长训练时长,单位小时;一旦设置,会覆盖 epochs
patience 100 Early stopping 容忍轮数。
save True 是否保存 checkpoint 和最终权重。
save_period -1 每隔多少个 epoch 保存一次 checkpoint;小于 1 表示关闭。
cache False 是否缓存数据;可用 True/'ram'/'disk'
pretrained True 是否从预训练权重开始;也可直接给权重路径。
optimizer 'auto' 优化器;可选 SGDMuSGDAdamAdamW 等。auto 会按任务/训练规模自动选。
seed 0 随机种子。
deterministic True 强制确定性算法,复现更好,但可能更慢。
multi_scale 0.0 多尺度训练幅度;按 imgsz 上下浮动。
cos_lr False 是否启用 cosine 学习率调度。
close_mosaic 10 最后 N 个 epoch 关闭 mosaic。
resume False 是否从中断 checkpoint 继续训练。
amp True 是否启用混合精度训练。
fraction 1.0 训练时只使用多少比例的数据集。
profile False 训练中附带分析 ONNX / TensorRT 速度。
freeze None 冻结前 N 层,或传层索引列表。
val True 训练期间是否周期性做验证。
max_det 300 训练内验证阶段,每张图最多保留多少检测框。
overlap_mask True 分割任务专用;是否把实例 mask 合并。
mask_ratio 4 分割任务专用;mask 下采样比例。
dropout 0.0 分类任务专用;分类头 dropout。
augmentations 无默认公开值 Python API 专用;自定义 Albumentations 变换列表。

训练超参数 / loss 权重

参数 默认值 说明
lr0 0.01 初始学习率。
lrf 0.01 最终学习率比例,最终 LR = lr0 * lrf
momentum 0.937 SGD 的 momentum,或 Adam 系列的 beta1
weight_decay 0.0005 L2 正则。
warmup_epochs 3.0 warmup 轮数。
warmup_momentum 0.8 warmup 初始 momentum。
warmup_bias_lr 0.1 warmup 阶段 bias 的学习率。
box 7.5 检测框回归损失权重。
cls 0.5 分类损失权重。
cls_pw 0.0 类别不平衡加权强度;0 关闭,1 为完整逆频率加权。
dfl 1.5 Distribution Focal Loss 权重。
pose 12.0 姿态任务关键点损失权重。
kobj 1.0 姿态任务 keypoint objectness 损失权重。
rle 1.0 姿态任务 RLE 损失权重。
angle 1.0 OBB 任务角度损失权重。
nbs 64 名义 batch size;用于 loss 归一化。

训练数据增强参数

参数 默认值 说明
hsv_h 0.015 色相抖动强度。
hsv_s 0.7 饱和度抖动强度。
hsv_v 0.4 亮度抖动强度。
degrees 0.0 随机旋转角度范围。
translate 0.1 平移幅度。
scale 0.5 缩放幅度;代码注释允许浮点或 (min,max)
shear 0.0 剪切角度。
perspective 0.0 透视变换强度。
flipud 0.0 上下翻转概率。
fliplr 0.5 左右翻转概率。
bgr 0.0 RGB/BGR 通道互换概率。
mosaic 1.0 Mosaic 概率。
mixup 0.0 MixUp 概率。
cutmix 0.0 CutMix 概率。
copy_paste 0.0 分割任务 copy-paste 概率。
copy_paste_mode 'flip' 分割任务 copy-paste 策略,常见为 flipmixup
auto_augment 'randaugment' 分类任务自动增强策略。
erasing 0.4 分类任务随机擦除概率。

验证 / 测试专用参数

参数 默认值 说明
save_json False 保存验证结果;检测/分割/姿态通常保存 COCO JSON,语义分割保存 PNG mask。
conf 运行时默认 0.001 最低置信度阈值;用于验证时生成 PR 曲线。OBB 任务代码默认 0.01
iou 0.7 NMS 的 IoU 阈值。
max_det 300 每张图最多保留的检测数。
half False 是否使用 FP16 验证。
dnn False ONNX 路径下是否用 OpenCV DNN 推理。
split 'val' 选择跑 valtesttrain 子集;跑测试集就设 split=test
save_txt False 是否把预测结果写成每图一个 .txt
save_conf False save_txt 配合,把置信度也写入文本。
augment False 是否启用 TTA(test-time augmentation)。
agnostic_nms False 是否做类无关 NMS。
visualize False 是否可视化 GT / TP / FP / FN。
show_labels True 可视化时是否显示类别标签。
show_conf True 可视化时是否显示置信度。
end2end None 是否强制启用/关闭端到端无 NMS 头;主要给 YOLO26 / YOLOv10 这类模型。

几条容易忽略的代码级细节

  • valrect=True 不是 default.yaml 的原始默认值,而是 Model.val() 在方法层硬塞进去的默认值。
  • confdefault.yaml 里是空值,但验证器启动时会自动补成 0.001;OBB 为 0.01
  • 训练过程里的验证会强制把 half 设为“非 CPU 且 AMP 开启”。
  • 对非 PyTorch 或静态导出后端,验证代码可能自动把 rect=False,并把 batch 改成导出模型 metadata 里的值。
  • showsave_framessave_cropline_widthshow_boxes 这些属于共享可视化/预测侧配置;官方 val 参数表没有把它们列为正式验证参数,所以我这里没有把它们算进“公开 val 参数集合”。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐