diff --git a/README.md b/README.md index ea53b8e..bfd07b6 100644 --- a/README.md +++ b/README.md @@ -297,7 +297,7 @@ python tools/ledger.py show # the table; `render` writes runs/README. sbatch slurm/train.sbatch 2026-10-02_alc ``` -`tools/train_run.py` trains with the recipe from `src/training/train_yolo_seg.py`, +`tools/train_run.py` trains with the recipe from `src/training/train_yolo_seg.py` (since 2026-09-29 with no horizontal flip and full-resolution masks, the settings that won the comparison on unseen gold frames; any setting can be overridden with `--set KEY=VALUE`), copies `best.pt` to `models/registry/-seg--/weights.pt` (LFS) with `metadata.json`, measures the weights on `data/gold/` with the studio's evaluation code (`src/eval/`, vendored), and gates against the active model's diff --git a/tools/train_run.py b/tools/train_run.py index 46b3070..deb5859 100644 --- a/tools/train_run.py +++ b/tools/train_run.py @@ -31,8 +31,11 @@ sys.path.insert(0, str(ROOT)) from tools import ledger # noqa: E402 -AUGMENT = dict(scale=0.7, translate=0.15, mosaic=0.5, close_mosaic=10, fliplr=0.5, flipud=0.3, - shear=5.0, perspective=0.0) +# Recipe since 2026-09-29: no horizontal flip (the camera never shows the pin on the left) and +# full-resolution masks (mask_ratio 1), the combination that kept run A's detection with the +# tightest masks; before that fliplr=0.5 and mask_ratio=4, as in the legacy train_yolo_seg.py. +AUGMENT = dict(scale=0.7, translate=0.15, mosaic=0.5, close_mosaic=10, fliplr=0.0, flipud=0.3, + shear=5.0, perspective=0.0, mask_ratio=1) GATE_TOL = 0.005 CLASS_TOL = 0.02 GUARDED_CLASSES = ("loop_all", "pin")