 Shaun ZhouandClaude Opus 5
|
fad1fe9fbb
|
feat(scripts): 重训流程加入切片步骤
产线要求模型输入固定为 TILE_SIZE×TILE_SIZE 且禁止 resize,训练数据必须先切片,
否则训出来的模型与推理侧的输入形态对不上——实测 640 训练的模型在 160 的片上
一个框都出不来。
五步:导出 -> 装配 -> 切片 -> 训练(imgsz 跟着 TILE_SIZE)-> 切权重并重启后端。
重启时把 YOLO_TILE_SIZE / YOLO_TILE_OVERLAP 一并传给后端,保证两侧尺寸一致。
TILE_SIZE=0 可跳过切片,只用于和旧模型对比。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-23 15:22:58 +08:00 |
|
 Shaun ZhouandClaude Opus 5
|
1684fddd7f
|
feat(scripts): 重训脚本可跳过重启 ML backend
手动跑重训时会无条件启动后端——纯手动路线并不想要它常驻占显存。
RESTART_BACKEND=0 可跳过;被后端调用时保持默认 1(权重只在启动时加载一次,
不重启就换不了模型)。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-22 13:36:25 +08:00 |
|
 Shaun ZhouandClaude Opus 5
|
8fa7a9d142
|
fix(ml-backend): 重训后真正切到新权重
重训脚本是 ML backend 的子进程,继承了后端 export 的 YOLO_WEIGHTS。启动脚本里
${YOLO_WEIGHTS:-默认值} 于是让旧值赢了——实测重训完成后后端仍加载旧权重,
current.pt 软链接形同虚设。同样被继承的还有 RETRAIN_EXTRA_SET,会让下次训练
沿用上次的冒烟参数(epochs=1)。
重启时显式传 YOLO_WEIGHTS 并 env -u 清掉 RETRAIN_EXTRA_SET。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-21 11:03:14 +08:00 |
|
 Shaun ZhouandClaude Opus 5
|
e61fd5887c
|
feat(ml-backend): Start Training 按钮真正触发重训,启动/重训脚本进 scripts/
原先点 Label Studio 的 Start Training 只是把计数加一:START_TRAINING 和普通标注事件
走同一条阈值判断,没配 RETRAIN_COMMAND 时更是静默什么都不做。实际使用中用户点了按钮、
以为在训练,其实权重一直没变。
- Start Training 无条件触发重训;攒够 RETRAIN_AFTER 条新标注也自动触发。
- 只数 ANNOTATION_CREATED:UPDATED / DELETED 是对已有标注的修改,不该把阈值顶到。
- 已有重训在跑时重复点击被忽略,不叠加启动。
- 没配 RETRAIN_COMMAND 时打警告说明不会真的训练,并在返回值里说清楚。
- 子进程输出重定向到 RETRAIN_LOG(默认 /tmp/retrain.log),训练进度有地方看。
scripts/start_ml_backend.sh、scripts/retrain_from_label_studio.sh 放进仓库,
可从工作区直接启动。重训末尾把 runs/detect/current.pt 软链接指向新权重,
启动脚本默认读它,换模型不必改脚本。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-21 11:00:01 +08:00 |
|