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

训练页:内层「当前训练 / 训练结果」两 Tab,图示训练结果——运行列表、四项指标(mAP50 / mAP50-95、Precision、Recall)、任务指标明细与运行详情;当前训练页是训练参数表单与训练前检查清单。
从 模型工作区 进来。内层两个 Tab:当前训练 / 训练结果。从项目树双击打开时锁定该模型,页内不再提供模型下拉或另选预训练入口。
能训什么
训练器走 Ultralytics 训练栈。任务类型是下面五类;探针命中的 Ultralytics RT-DETR .pt 也可训,不是另开一类任务:
| 任务 | 说明 |
|---|---|
| 检测 detection | 轴对齐框 |
| 分类 classification | 图像分类 |
| 分割 segmentation | YOLO 分割权重,不是 SegFormer |
| 姿态 pose | 关键点;数据集关键点数须与模型一致 |
| 旋转框 obb | 旋转检测;类别名须与模型一致 |
下列任务不支持训练,开始按钮直接拒绝,拒绝文案按界面原文:
- ocr — YOLO训练不支持OCR识别任务
- ocr-text-detection — 训练不支持 ocr-text-detection,已拒绝(不会按 OCR 或检测训练)
- instance-segmentation — 训练不支持 instance-segmentation,已拒绝(不会按语义分割训练)
- 其它非五类 — 训练不支持任务类型 <原值>(仅 detection/classification/segmentation/pose/obb)
- 加密模型(.darmodel)— 加密模型仅可用于推理,不能训练
可训架构:YOLO26 / YOLO11 / YOLOv8 / YOLOv10 / YOLO12(分类只收 *-cls)和 Ultralytics RT-DETR 的 .pt(结构探针命中才放行)。DINO / SegFormer / SAM2 / torchvision / YOLOv6 / YOLOv7 / lyuwenyu RT-DETR .pth / Paddle / 异常检测都不在这条训练轨上。没有强化学习。OCR 蒸馏走 蒸馏 的 Paddle 环境检查。
加密模型不能当基模型。要二次训练:先在 推理 里「导出为数据集」,再对明文 .pt 加新数据训。
基模型固定为当前工作区模型的本地明文 .pt。未选模型或没有明文权重时,检查清单基模型一项显示阻断原因;没有「导入基模型」横幅,也没有预训练模型下拉。
当前训练
第一行:训练标题、任务类型、预设下拉、取消、开始训练。第二行:当前会话 ID(未启动显示 (未启动))+ 预设说明(默认文案为「选择预设自动填充训练参数」)。
按钮状态:
- 开始训练 — 项目、模型明文权重、数据集、配对兼容、数据集健康、参数合法全部通过后才可点;同一模型已有活跃任务时禁用
- 取消 — 有活跃任务才可点;一次取消当前全部活跃任务
从项目树双击进入时模型锁定,日志写「训练模型已固定」。页面卸载不会停掉后台任务;训练进行中会拦住卸载。切换项目会取消旧项目任务。
预设
选预设自动写入全部参数(含页面不逐项露出的增强与损失权重)。检测族预设只在检测 / 分割 / 姿态 / 旋转框下出现;其余预设始终可选。
通用与专项预设的真实取值:
| 预设 | 轮次 | 批 | 学习率 | 输入 | 优化器 | 调度 | 早停 | 衰减 | 预热 | 冻结 |
|---|---|---|---|---|---|---|---|---|---|---|
| 快速试跑 | 50 | 16 | 0.001 | 640 | AdamW | Cosine | 20 | 0.0005 | 1 | 0 |
| 标准训练 | 100 | 16 | 0.01 | 640 | SGD | Cosine | 30 | 0.0005 | 3 | 0 |
| 高精度 | 300 | 16 | 0.01 | 640 | SGD | Cosine | 50 | 0.0005 | 3 | 0 |
| 单类别强化 (1 类, 高召回) | 150 | 16 | 0.005 | 640 | AdamW | Cosine | 40 | 0.0003 | 3 | 0 |
| 少类别 (2-5 类, 均衡) | 120 | 16 | 0.008 | 640 | AdamW | Cosine | 35 | 0.0004 | 3 | 0 |
| 多类别 (10+ 类, 类别均衡) | 200 | 16 | 0.005 | 640 | AdamW | Cosine | 40 | 0.0005 | 3 | 0 |
| 类别不均衡 (长尾分布) | 250 | 16 | 0.003 | 640 | AdamW | Cosine | 50 | 0.0003 | 5 | 0 |
| 新增类别 (增量学习, 保留旧类) | 80 | 16 | 0.001 | 640 | AdamW | Constant | 25 | 0.0003 | 2 | 0 |
| 新增类别 (冻结骨干, 防遗忘) | 60 | 16 | 0.0005 | 640 | SGD | Constant | 20 | 0.0003 | 1 | 10 |
| 小目标检测 (高 mosaic + 大 DFL) | 200 | 16 | 0.005 | 640 | AdamW | Cosine | 50 | 0.0003 | 3 | 0 |
| 低显存 (8GB GPU, 冻结骨干) | 100 | 8 | 0.005 | 640 | SGD | Constant | 30 | 0.0005 | 3 | 10 |
同一张预设还会写入增强与损失权重(全部预设数据增强=开、AMP=开、启用验证=开):
| 预设 | mosaic | mixup | copy_paste | degrees | translate | scale | fliplr | hsv | box | cls | dfl |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 快速试跑 | 0.5 | 0 | 0 | 0 | 0.1 | 0.5 | 0.5 | 0.015 / 0.7 / 0.4 | 7.5 | 0.5 | 1.5 |
| 标准训练 | 1.0 | 0 | 0 | 0 | 0.1 | 0.5 | 0.5 | 0.015 / 0.7 / 0.4 | 7.5 | 0.5 | 1.5 |
| 高精度 | 1.0 | 0.15 | 0.1 | 0 | 0.1 | 0.5 | 0.5 | 0.015 / 0.7 / 0.4 | 7.5 | 0.5 | 1.5 |
| 单类别强化 (1 类, 高召回) | 1.0 | 0.1 | 0.2 | 15 | 0.2 | 0.7 | 0.5 | 0.02 / 0.8 / 0.5 | 10 | 0.3 | 2.0 |
| 少类别 (2-5 类, 均衡) | 1.0 | 0.1 | 0.1 | 5 | 0.1 | 0.5 | 0.5 | 0.015 / 0.7 / 0.4 | 7.5 | 1.0 | 1.5 |
| 多类别 (10+ 类, 类别均衡) | 1.0 | 0.2 | 0.1 | 5 | 0.1 | 0.5 | 0.5 | 0.015 / 0.7 / 0.4 | 7.5 | 0.4 | 1.5 |
| 类别不均衡 (长尾分布) | 1.0 | 0.3 | 0.4 | 10 | 0.2 | 0.7 | 0.5 | 0.02 / 0.8 / 0.5 | 7.5 | 1.5 | 1.5 |
| 新增类别 (增量学习, 保留旧类) | 0.5 | 0.1 | 0.1 | 5 | 0.1 | 0.5 | 0.5 | 0.015 / 0.7 / 0.4 | 7.5 | 0.8 | 1.5 |
| 新增类别 (冻结骨干, 防遗忘) | 0.3 | 0 | 0 | 0 | 0.05 | 0.3 | 0.5 | 0.01 / 0.5 / 0.3 | 7.5 | 0.8 | 1.5 |
| 小目标检测 (高 mosaic + 大 DFL) | 1.0 | 0.3 | 0.5 | 0 | 0.1 | 0.5 | 0.5 | 0.015 / 0.7 / 0.4 | 15 | 1.0 | 4.0 |
| 低显存 (8GB GPU, 冻结骨干) | 0.5 | 0 | 0 | 0 | 0.1 | 0.5 | 0.5 | 0.015 / 0.7 / 0.4 | 7.5 | 0.5 | 1.5 |
hsv 列依次是 hsv_h / hsv_s / hsv_v。box / cls / dfl 是损失权重。检测族预设(单类别强化、少类别、多类别、类别不均衡、新增类别两项、小目标检测)带 box/copy_paste 等检测族专用参数,只对检测 / 分割 / 姿态 / 旋转框开放。小目标检测预设的完整名随任务中文名生成,检测任务下显示为「小目标检测 (高 mosaic + 大 DFL)」。
训练参数
改完即保存进项目,下次打开同一项目仍是这套参数(保存 10 项:轮次、批、输入、学习率、设备、预训练路径、衰减、预热、验证开关、早停);优化器、学习率调度与增强强度不保存,只随本次运行走。学习率与权重衰减失焦即时校验,越界红框并在参数卡内写原因,不弹窗。
| 参数 | 范围 / 选项 | 默认 | 映射到 Ultralytics |
|---|---|---|---|
| 选择数据集 | 项目内数据集下拉 | 无 | data;目录时脚本内找 data.yaml 等清单 |
| 训练轮次 | 1 到 10000 | 100 | epochs,始终传入 |
| 批大小 | 1 到 1024 | 16 | batch,始终传入 |
| 学习率 | 大于 0 且不超过 1 | 0.01 | lr0,始终传入 |
| 输入尺寸 | 32 到 4096,步进 32 | 640 | imgsz,始终传入 |
| 优化器 | auto / SGD / Adam / AdamW / NAdam / RMSProp | SGD | optimizer;仅非 auto 时传入 |
| 学习率调度 | Cosine / Linear / Constant / ReduceOnPlateau | Cosine | 只有 Cosine 映射为 cos_lr=True,其余三项不写 cos_lr,走 Ultralytics 默认非余弦 |
| 数据增强 | 开 / 关 | 开 | 开=声明 flip、flipud、rotate、hsv、translate、scale、mosaic、mixup、copy_paste;关=对应强度清零 |
| 早停耐心值 | 0 到 500 | 0 | patience;0 表示关闭早停,不传该键 |
| 权重衰减 | 不小于 0 | 0.0005 | weight_decay;等于 0.0005 时不传,用 Ultralytics 默认 |
| 预热轮次 | 0 到 100 | 3 | warmup_epochs;等于 3 时不传 |
| 启用验证 | 勾 / 不勾 | 勾 | 勾=只传 val=True;不勾=不跑验证。勾选时存 0.2、不勾存 0,这个数不是 fraction,也不切分数据 |
| 训练设备 | auto / cpu / cuda / cuda:0 / cuda:1 / 0 / 1 / 2 / 3 | auto | device;auto 有 CUDA 用 GPU,否则 CPU |
学习率调度界面有四项,脚本目前只区分 Cosine 与非 Cosine。Linear / Constant / ReduceOnPlateau 不会各自实现一套调度器。启用验证不是切分比例,train/val 划分以 data.yaml 为准。
预训练权重固定跟随当前工作区所选模型的明文权重路径,表单里不出现另选入口。产物目录是项目 outputs/training/,每次运行一个子目录。
训练前检查清单
右侧固定宽 340,内容多时表内滚动。符号语义:
- ✓ 通过
- ✗ 阻断
- ⚠ 警告,不一定挡开始
- ○ 尚未选择或尚未检查
| 项 | 通过条件 |
|---|---|
| 基模型 | 当前模型有本地明文权重文件。加密模型显示「加密模型仅可用于推理,不能训练;可先用其推理导出数据,再对数据二次训练」;未选模型显示「未选择模型」 |
| 数据集 | 已选数据集且路径存在。未选显示「未选择数据集」;路径不存在显示「路径不存在,请检查数据集配置」 |
| 数据集格式 | 检出 images/ 与 labels/(或 train/、val/ 下同名目录)。缺一边或都缺给 ⚠ 警告 |
| 数据集健康 | 目录型数据集走轻量校验:目录存在、图片数大于 0、不损坏。yaml 清单入口标「yaml 清单, 由配对校验检查」 |
| Python 环境 | 点开始后才探测。未探测显示「开始训练时将自动检查」;探测后可用显示「可用」,否则「不可用,查看日志了解详情」 |
| GPU | 点开始后随环境报告刷新。未检查显示「尚未检查」;无 CUDA 给 ⚠ 并提示将用 CPU;有卡显示型号与剩余显存 |
| 磁盘空间 | 项目所在盘剩余空间。大于等于 5 GB 通过;不足 5 GB 阻断 |
| 兼容性 | 模型与数据集任务类型一致,家族与标注格式兼容,pose 关键点数一致。不一致时写具体硬阻断原因 |
清单全绿但没点开始,不等于已经训过。空载默认 100 轮 / 批 16 只是表单初值,不是训练结果。
模型与数据集不兼容时,参数区下方出现横幅,文案由配对检查给出具体原因,例如「数据集任务类型与模型不兼容」或家族、关键点、标注格式的硬阻断描述。类别数不一致只给警告,不挡开始。
正在训练与日志
有活跃任务时出现「正在训练」表:模型、状态、Epoch、Loss、指标。指标列按品类显示 accuracy_top1 或 mAP50-95。底部聚合进度条取全部活跃任务进度均值;尚无有效百分比时走不确定流光动画。
任务状态可见值包括:等待中、检查训练环境、训练中、训练完成、已取消、训练失败、环境检查失败、取消失败,以及训练器回传的进度文案。
- 取消按钮一次取消全部活跃任务,逐条写日志「已取消任务」
- 同一模型同时只允许一个活跃任务
- 训练日志只读,Consolas 字体,自动滚到底;超过约 20 万字符后丢弃最旧一半
- 页面加载完成会写「训练配置已加载;点击“开始训练”时检查 Python 训练环境」
环境或资产未就绪时状态为「训练环境或项目资产未就绪」,不开始训练,不编造 loss、mAP 或 best.pt。
点开始后先做检查与环境探测,再启动训练。日志会依次出现开始、环境检查、参数摘要;预设应用写「[预设] 已应用」。
训练结果
左侧运行列表三列:运行、状态、开始时间。空列表显示「暂无训练历史」。右上角 刷新。状态显示:运行中、已完成、失败、已取消。选中一次运行后右侧四个子 Tab:
| 子 Tab | 内容 |
|---|---|
| 概览 | 状态、任务类型、主指标、Loss 指标卡;分类另给 Top-1 / Top-5;检测族另给 Precision / Recall / mAP50 / mAP50-95,并带 Box / Mask / Pose / OBB 族标;再下面是持续时间、最佳轮次、任务指标明细表、运行详情(运行名、源模型、数据集、开始/完成时间、运行目录与打开按钮) |
| 日志 | 该次完整训练日志;未通过完整性校验时不显示正文 |
| 结果图片 | 验证可视化缩略图,每张显示文件名、角色、相对路径 |
| 产物 | 角色、路径、大小、SHA-256、完整性、打开 |
产物角色来自运行目录标准集合:training-log、args、results、best-weights、last-weights、onnx、labels、plot、evaluation-status、evaluation-report。完整性列可能是:项目记录、已登记、清单未登记、未登记、清单缺失、清单无效、校验不匹配、缺失。清单无效或校验不匹配时禁止打开产物。
训练完成后会尝试自动评估,状态追加「训练完成 自动评估: …」。自动评估覆盖 detection / classification / segmentation / pose / obb(评估前把 weights/best.pt 转成 weights/best.onnx,已有则直接用)以及 ocr(不走这条 ONNX)。其它任务才写「暂无可用的自动评估器」,不伪造指标。训练脚本本身不导出 ONNX,也不导出 .darmodel。engine、OpenVINO、.darmodel 走 导出 页。评估失败不推翻已成功的训练结果。
开始条件
任一失败即拒,顺序如下:
- 训练源不是加密模型(所选模型或预训练路径命中 .darmodel 时,原文为「加密模型仅可用于推理,不能训练」)
- 已打开有效文件夹项目
- 已选模型,且本地明文权重存在
- 已选数据集,且路径有效
- 数据集健康检查通过(目录型:不损坏且图片数大于 0)
- 模型与数据集配对兼容(任务类型、家族、标注格式、pose 关键点)
- 任务属于契约五类,且不是 ocr / ocr-text-detection / instance-segmentation
- 当前没有正在收尾的训练,且同一模型没有其它活跃任务
- 参数通过校验(轮次、批、输入大于 0;学习率在 (0, 1];衰减非负;预热、早停非负;设备取值合法)
- 点开始后 Python 与 ultralytics 探测通过,且检查时选中的模型与数据集没变
打开页面不探测 Python。只有点开始训练才会检查训练环境。环境检查失败时任务状态为「环境检查失败」,日志写「训练环境或项目资产未就绪」。
诚实边界
训练器是 Ultralytics 单轨。探针命中的 Ultralytics RT-DETR .pt 可以在本页训练;DINO / SegFormer / SAM2 以及非 Ultralytics 的 RT-DETR 权重不能。SDK 只做推理(阻塞调用)。
加密模型只可推理,不可训练、不可蒸馏。二次训练路径是:推理导出数据集 + 明文 .pt。激活码对应这一份加密包的离线推理;官方不解回明文。
空载界面绿灯、检查清单空心圆、默认 100 / 16,都不是「已经真训过」。训练结果以「训练结果」Tab 里的运行记录、日志与产物为准。