Commit Graph
2 Commits
Author SHA1 Message Date
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