CI / ledger-and-tools (push) Successful in 18s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Loop-type classifier, first test (2026-09-29)
Question: can a small classifier tell the loop type, and above all a broken loop, from the
frame? Data: the 364 labelled production frames whose reviewer picked a loop type in the
annotator (nylon 123, broken 97, litholoop 88, mitegen microloop 30, micromesh 26).
Method: train.py (a copy of AareLC_studio/src/pipeline/looptype/train.py): ResNet-18
from ImageNet weights, 256 px crop around every labelled object widened by 40 %, five
cross-validation folds that never split the frames of one sample, class-weighted loss.
Result: looptype_head_2026-09-29.json.
| accuracy, five classes | 0.849 |
| broken: precision / recall | 0.88 / 0.95 |
| broken vs rest AUROC | 0.985 overall, 0.993 within PXII, 0.81 within PXIII (4 broken frames only) |
| broken recall at 90 % precision | 0.95 |
| weakest classes | micromesh and mitegen microloop, confused with each other (26 and 30 frames) |
Caveat: 93 of the 97 broken tags come from PXII, so the PXIII number rests on four frames; the next tags to collect are broken loops from PXIII.