跳到主要内容

训练

模型工作区第三个 Tab。基于当前项目的预训练权重与数据集做微调。点 开始训练 才启动 Python + Ultralytics YOLO;打开页面只读资产,不探测 Python。

训练页

截图占位。

模型工作区 进来。内层两个 Tab:当前训练 / 训练结果

能训什么

TrainingRunner 只走 Ultralytics 单轨train.py + YOLO)。契约五类:

任务说明
检测 detection轴对齐框
分类 classification图像分类
分割 segmentationYOLO 语义/实例分割权重(YOLO 格式,不是 SegFormer)
姿态 pose关键点;数据集 kpt_shape 须与模型关键点数一致
旋转框 obb旋转检测;数据集 names 须与模型标签一致

下列 不能train.py,开始按钮会拒:

  • OCR 识别:YOLO训练不支持OCR识别任务
  • ocr-text-detection:不会按 OCR 或检测训练
  • instance-segmentation:不会按语义分割训练
  • DINO / RT-DETR / SegFormer / SAM2 / torchvision .pth / Paddle OCR
  • 加密模型(.darmodel):「加密模型仅可用于推理,不能训练」

没有强化学习。OCR 蒸馏走蒸馏页的 Paddle 闸门,不走本页。

基模型必须是本地 .pt 预训练权重。没有权重时出现「导入基模型」横幅。加密模型下拉带「加密·不可训练」徽标;可先在 推理「导出为数据集」,再对数据二次训练。

当前训练

第一行:标题、任务类型、预设、取消、开始训练。第二行:当前会话 ID(未启动显示「(未启动)」)+ 预设说明。

预设

选预设自动填参数。检测族专用预设只在检测 / 分割 / 姿态 / OBB 下出现。

预设做什么
新训练 (从预训练权重起步, 通用)100 轮,AdamW + Cosine,通用起步
新训练 (快速验证, 50 轮)50 轮,SGD + Constant,看能不能收敛
新训练 (高精度, 300 轮)300 轮,更强增强,追求 mAP
单类别强化 (1 类, 高召回)检测族;提高召回、降漏检
少类别 (2-5 类, 均衡)检测族;提高分类损失,减少混淆
多类别 (10+ 类, 类别均衡)检测族;加长轮次
类别不均衡 (长尾分布)检测族;强 mosaic,增加尾类曝光
新增类别 (增量学习, 保留旧类)检测族;低学习率
新增类别 (冻结骨干, 防遗忘)检测族;冻前 10 层
小检测 (高 mosaic + 大 DFL)检测族;小目标 / 缺陷
低显存 (8GB GPU, 冻结骨干)batch=8,冻骨干

训练参数

改完即写入项目 .darrastudio/training_params.json。越界失焦后红字原因,不弹窗。

参数范围 / 选项含义
预训练模型项目内模型下拉微调起点,必须有本地 .pt。加密项禁用
数据集按任务过滤须有图像 / 标注。任务类型须与模型一致
训练轮次1–10000,默认 100Ultralytics epochs
批大小1–1024,默认 16一轮里几张图;显存不够就减小
学习率(0, 1],默认 0.01初始 lr0
输入尺寸32–4096,步进 32,默认 640imgsz。分类常用 224,检测常用 640
优化器AdamW / SGD / Adam / Nadam传给 Ultralytics。默认 AdamW
学习率调度Cosine / Linear / Constant / ReduceOnPlateau当前脚本只把 Cosine 映射为 cos_lr=True;其余三项走默认非余弦,不要当成四套已独立实现的调度器
数据增强开 / 关开 = 启用 flip / hsv / mosaic / mixup 等;关 = 对应强度清零。各组强度由预设写入,页面不逐项暴露
早停耐心值0–500,默认 0验证指标连续若干轮不升就停。0 = 关闭早停
权重衰减≥ 0,默认 0.0005L2
预热轮次0–100,默认 3学习率从低爬到设定值的轮数
启用验证勾选 / 不勾勾选 = 训练时按 data.yaml 已有划分 跑验证(内部只传 val=True)。不是 把训练集再切 20%。不勾 = 关闭验证
训练设备auto / cpu / cuda / cuda:0 / cuda:1 / 0 / 1 / 2 / 3auto 有 CUDA 用 GPU,否则 CPU

产物目录:项目 outputs/training/

训练前检查清单

右侧固定宽。符号:✓ 通过 / ✗ 阻断 / ⚠ 警告 / ○ 未选。

通过条件
基模型本地 .pt 存在。加密源写「加密模型仅可用于推理,不能训练;可先用其推理导出数据,再对数据二次训练」
数据集路径有效
数据集格式框类要有 images/ + labels/(或 train/ val/ 下同名)
数据集健康图片 / 标注计数 > 0
Python 环境点开始后才探测;能启动且能 import torch / ultralytics / yaml
GPU选了 cuda 时设备是否可用;CPU 训练不挡
磁盘空间输出盘可写
兼容性模型任务与数据集任务一致;pose 关键点数、obb 类别名一致

清单全绿但没点开始 ≠ 已经训过。空载默认 100 轮 / batch 16 不是训练结果。

正在训练 / 日志

有活跃任务时出现表:模型、状态、Epoch、Loss、指标。底部只读日志(Consolas)+ 聚合进度条。取消只停当前会话。

环境未就绪时状态为「训练环境或项目资产未就绪」,不进 TrainingRunner,不编造 loss / mAP / best.pt

训练结果

左侧运行列表:运行名、状态、开始时间。空则「暂无训练历史」。右上刷新。

选中一次运行后,右侧:

子 Tab内容
概览状态、任务类型、主指标、Loss;分类另给 Top-1 / Top-5;检测族另给 Precision / Recall / mAP50 / mAP50-95。任务指标明细表。运行详情(源模型、数据集、时间、运行目录「打开」)
日志该次完整日志
结果图片验证可视化缩略图
产物best.pt / last.pt 等:角色、路径、大小、SHA-256、完整性、打开

obb / ocr / instance-segmentation / ocr-text-detection 没有训练后自动评估器;评估页会如实拒绝,不伪造指标。

开始门(任一失败即拒)

  1. 加密源(所选模型 / 预训练覆盖 / 项目内加密 sibling)
  2. 已打开有效文件夹项目
  3. 已选模型且本地 .pt 有效
  4. 已选数据集且有图像 / 标注
  5. 参数合法
  6. 任务属于契约五类
  7. 点开始后 Python + ultralytics 探测通过

诚实边界

  1. 训练器 = Ultralytics YOLO 单轨。不要把模型库里的 DINO / RT-DETR / SegFormer / SAM2 当成已能训。
  2. 无强化学习。
  3. OCR 不走本页;蒸馏页的 Paddle 闸门是另一条路。
  4. 加密模型只推理,不训练。二次训练用推理导出的数据集 + 明文 .pt
  5. 学习率调度界面有四项,脚本目前只区分「Cosine / 非 Cosine」。
  6. 「启用验证」不是切分比例,划分以 data.yaml 为准。
  7. 空载 UI 绿、清单 ○、默认 100/16,都不是「已经真训过」。