From 22192ec1a33024c6c8f1845bea621e69811fcc46 Mon Sep 17 00:00:00 2001 From: jungfrau Date: Mon, 26 Oct 2026 09:16:33 +0100 Subject: [PATCH] run 2026-10-26_v5h-noflip-mask1: gate_failed --- .../gold_report.json | 118 ++++++++++++++++++ .../metadata.json | 71 +++++++++++ .../weights.pt | 3 + runs/2026-10-26_v5h-noflip-mask1/latency.json | 1 + runs/2026-10-26_v5h-noflip-mask1/metrics.json | 57 +++++++++ runs/2026-10-26_v5h-noflip-mask1/run.json | 52 +++++++- runs/README.md | 8 ++ 7 files changed, 305 insertions(+), 5 deletions(-) create mode 100644 models/registry/yolo26n-seg-v5h-noflip-mask1-2026-10-26/gold_report.json create mode 100644 models/registry/yolo26n-seg-v5h-noflip-mask1-2026-10-26/metadata.json create mode 100644 models/registry/yolo26n-seg-v5h-noflip-mask1-2026-10-26/weights.pt create mode 100644 runs/2026-10-26_v5h-noflip-mask1/latency.json create mode 100644 runs/2026-10-26_v5h-noflip-mask1/metrics.json diff --git a/models/registry/yolo26n-seg-v5h-noflip-mask1-2026-10-26/gold_report.json b/models/registry/yolo26n-seg-v5h-noflip-mask1-2026-10-26/gold_report.json new file mode 100644 index 00000000..91bda2bd --- /dev/null +++ b/models/registry/yolo26n-seg-v5h-noflip-mask1-2026-10-26/gold_report.json @@ -0,0 +1,118 @@ +{ + "per_class": { + "loop_all": { + "tp": 147, + "fp": 32, + "fn": 11, + "precision": 0.8212290502793296, + "recall": 0.930379746835443, + "f1": 0.8724035608308606, + "mean_mask_iou": 0.8915905247976269, + "n_matched": 147 + }, + "pin": { + "tp": 74, + "fp": 23, + "fn": 10, + "precision": 0.7628865979381443, + "recall": 0.8809523809523809, + "f1": 0.8176795580110496, + "mean_mask_iou": 0.915598502368835, + "n_matched": 74 + }, + "crystal": { + "tp": 80, + "fp": 66, + "fn": 55, + "precision": 0.547945205479452, + "recall": 0.5925925925925926, + "f1": 0.5693950177935944, + "mean_mask_iou": 0.7838964045966136, + "n_matched": 80 + }, + "loop_face": { + "tp": 129, + "fp": 68, + "fn": 26, + "precision": 0.6548223350253807, + "recall": 0.832258064516129, + "f1": 0.7329545454545453, + "mean_mask_iou": 0.8581593922332215, + "n_matched": 129 + }, + "ice": { + "tp": 2, + "fp": 11, + "fn": 40, + "precision": 0.15384615384615385, + "recall": 0.047619047619047616, + "f1": 0.07272727272727272, + "mean_mask_iou": 0.8541725321804396, + "n_matched": 2 + }, + "needle": { + "tp": 0, + "fp": 0, + "fn": 1, + "precision": 0.0, + "recall": 0.0, + "f1": 0.0, + "mean_mask_iou": 0.0, + "n_matched": 0 + } + }, + "overall": { + "tp": 432, + "fp": 200, + "fn": 143, + "precision": 0.6835443037974683, + "recall": 0.7513043478260869, + "f1": 0.715824357912179, + "mean_mask_iou": 0.8656035077562974, + "n_matched": 432 + }, + "dataset": { + "gold_images": 335, + "pred_images": 335, + "missing_predictions": 0, + "iou_threshold": 0.5, + "ignored_objects": 454 + }, + "environment": { + "host": "mx-spark-01", + "ultralytics": "8.4.160", + "torch": "2.14.0+cu130" + }, + "gate": { + "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/gold_report.json", + "f1_delta": -0.0448, + "mask_iou_delta": -0.0327, + "mask_score": 0.6503, + "mask_score_baseline": 0.6831, + "matched_only_iou_delta": 0.0043, + "class_f1_delta": { + "loop_all": -0.0483, + "pin": -0.0221 + }, + "pass_point_rule": false, + "rule": "paired bootstrap", + "bootstrap": { + "frames": 335, + "mounts": 300, + "draws": 2000, + "f1": { + "delta": -0.0448, + "lo": -0.074, + "hi": -0.0181, + "win": 0.001 + }, + "mask_score": { + "delta": -0.0327, + "lo": -0.0544, + "hi": -0.0126, + "win": 0.001 + } + }, + "pass": false + } +} diff --git a/models/registry/yolo26n-seg-v5h-noflip-mask1-2026-10-26/metadata.json b/models/registry/yolo26n-seg-v5h-noflip-mask1-2026-10-26/metadata.json new file mode 100644 index 00000000..4a123094 --- /dev/null +++ b/models/registry/yolo26n-seg-v5h-noflip-mask1-2026-10-26/metadata.json @@ -0,0 +1,71 @@ +{ + "model_id": "yolo26n-seg-v5h-noflip-mask1-2026-10-26", + "family": "yolo26n", + "task": "segmentation", + "training_date": "2026-10-26", + "run": "2026-10-26_v5h-noflip-mask1", + "dataset": "dataset/2026-10-26_v5h", + "base_weights": "models/base/yolo26n-seg.pt", + "hyperparams": { + "epochs": 400, + "patience": 50, + "imgsz": 640, + "batch": 16, + "device": "0", + "overlap_mask": false, + "scale": 0.7, + "translate": 0.15, + "mosaic": 0.5, + "close_mosaic": 10, + "fliplr": 0, + "flipud": 0.3, + "shear": 5.0, + "perspective": 0.0, + "mask_ratio": 1 + }, + "export_formats": [ + "pt" + ], + "metrics": { + "tp": 432, + "fp": 200, + "fn": 143, + "precision": 0.6835443037974683, + "recall": 0.7513043478260869, + "f1": 0.715824357912179, + "mean_mask_iou": 0.8656035077562974, + "n_matched": 432 + }, + "gate": { + "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/gold_report.json", + "f1_delta": -0.0448, + "mask_iou_delta": -0.0327, + "mask_score": 0.6503, + "mask_score_baseline": 0.6831, + "matched_only_iou_delta": 0.0043, + "class_f1_delta": { + "loop_all": -0.0483, + "pin": -0.0221 + }, + "pass_point_rule": false, + "rule": "paired bootstrap", + "bootstrap": { + "frames": 335, + "mounts": 300, + "draws": 2000, + "f1": { + "delta": -0.0448, + "lo": -0.074, + "hi": -0.0181, + "win": 0.001 + }, + "mask_score": { + "delta": -0.0327, + "lo": -0.0544, + "hi": -0.0126, + "win": 0.001 + } + }, + "pass": false + } +} diff --git a/models/registry/yolo26n-seg-v5h-noflip-mask1-2026-10-26/weights.pt b/models/registry/yolo26n-seg-v5h-noflip-mask1-2026-10-26/weights.pt new file mode 100644 index 00000000..d54ba9b8 --- /dev/null +++ b/models/registry/yolo26n-seg-v5h-noflip-mask1-2026-10-26/weights.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f60c36a7cca90765a1e8393ca30e38f14de6a192bd0ec43c949232d64ce9e4a7 +size 6581277 diff --git a/runs/2026-10-26_v5h-noflip-mask1/latency.json b/runs/2026-10-26_v5h-noflip-mask1/latency.json new file mode 100644 index 00000000..412c1468 --- /dev/null +++ b/runs/2026-10-26_v5h-noflip-mask1/latency.json @@ -0,0 +1 @@ +{"weights": "runs/2026-10-26_v5h-noflip-mask1/ultralytics/train/weights/best.pt", "frames": 150, "imgsz": 640, "infer_scale": 0.5, "half": true, "ms_median": 4.23, "ms_p90": 4.35, "ms_max": 7.1, "fps_median": 236.2, "device": "0", "backend": "pytorch", "gpu": "NVIDIA GB10", "ultralytics": "8.4.160", "torch": "2.14.0+cu130"} diff --git a/runs/2026-10-26_v5h-noflip-mask1/metrics.json b/runs/2026-10-26_v5h-noflip-mask1/metrics.json new file mode 100644 index 00000000..53618a8e --- /dev/null +++ b/runs/2026-10-26_v5h-noflip-mask1/metrics.json @@ -0,0 +1,57 @@ +{ + "overall": { + "tp": 432, + "fp": 200, + "fn": 143, + "precision": 0.6835443037974683, + "recall": 0.7513043478260869, + "f1": 0.715824357912179, + "mean_mask_iou": 0.8656035077562974, + "n_matched": 432 + }, + "gate": { + "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/gold_report.json", + "f1_delta": -0.0448, + "mask_iou_delta": -0.0327, + "mask_score": 0.6503, + "mask_score_baseline": 0.6831, + "matched_only_iou_delta": 0.0043, + "class_f1_delta": { + "loop_all": -0.0483, + "pin": -0.0221 + }, + "pass_point_rule": false, + "rule": "paired bootstrap", + "bootstrap": { + "frames": 335, + "mounts": 300, + "draws": 2000, + "f1": { + "delta": -0.0448, + "lo": -0.074, + "hi": -0.0181, + "win": 0.001 + }, + "mask_score": { + "delta": -0.0327, + "lo": -0.0544, + "hi": -0.0126, + "win": 0.001 + } + }, + "pass": false + }, + "training": { + "epochs_run": 188, + "precision(B)": 0.72206, + "recall(B)": 0.72365, + "mAP50(B)": 0.71787, + "mAP50-95(B)": 0.57152, + "precision(M)": 0.71814, + "recall(M)": 0.71711, + "mAP50(M)": 0.70593, + "mAP50-95(M)": 0.55179 + }, + "version": "yolo26n-seg-v5h-noflip-mask1-2026-10-26", + "measured_at": "2026-10-26T09:16:24" +} diff --git a/runs/2026-10-26_v5h-noflip-mask1/run.json b/runs/2026-10-26_v5h-noflip-mask1/run.json index b31e0e37..c8f665ab 100644 --- a/runs/2026-10-26_v5h-noflip-mask1/run.json +++ b/runs/2026-10-26_v5h-noflip-mask1/run.json @@ -2,18 +2,60 @@ "id": "2026-10-26_v5h-noflip-mask1", "dataset": "dataset/2026-10-26_v5h", "base_weights": "models/base/yolo26n-seg.pt", - "status": "exported", + "status": "gate_failed", "created": "2026-10-26T01:43:39", "created_by": "jungfrau@mx-spark-01", - "hyperparams": {}, - "version": null, - "metrics": {}, + "hyperparams": { + "epochs": 400, + "patience": 50, + "imgsz": 640, + "batch": 16, + "device": "0", + "overlap_mask": false, + "scale": 0.7, + "translate": 0.15, + "mosaic": 0.5, + "close_mosaic": 10, + "fliplr": 0, + "flipud": 0.3, + "shear": 5.0, + "perspective": 0.0, + "mask_ratio": 1 + }, + "version": "yolo26n-seg-v5h-noflip-mask1-2026-10-26", + "metrics": { + "f1": 0.715824357912179, + "mean_mask_iou": 0.8656035077562974, + "gate_pass": false, + "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/gold_report.json", + "measured_at": "2026-10-26T09:16:24" + }, "history": [ { "status": "exported", "at": "2026-10-26T01:43:39", "by": "jungfrau@mx-spark-01", "note": "promoted recipe (fliplr 0, mask_ratio 1) on dataset v5h: v5 with half of the accepted-unchanged frames (export.accepted_share 0.5, rare classes kept), gate only, Spark" + }, + { + "status": "training", + "at": "2026-10-26T01:43:39", + "by": "jungfrau@mx-spark-01", + "note": "train_run.py" + }, + { + "status": "measured", + "at": "2026-10-26T09:16:24", + "by": "jungfrau@mx-spark-01", + "note": "" + }, + { + "status": "gate_failed", + "at": "2026-10-26T09:16:24", + "by": "jungfrau@mx-spark-01", + "note": "{\"baseline\": \"/home/jungfrau/AareLC_train/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/gold_report.json\", \"f1_delta\": -0.0448, \"mask_iou_delta\": -0.0327, \"mask_score\": 0.6503, \"mask_score_baseline\": 0.6831, \"matched_only_iou_delta\": 0.0043, \"class_f1_delta\": {\"loop_all\": -0.0483, \"pin\": -0.0221}, \"pass_point_rule\": false, \"rule\": \"paired bootstrap\", \"bootstrap\": {\"frames\": 335, \"mounts\": 300, \"draws\": 2000, \"f1\": {\"delta\": -0.0448, \"lo\": -0.074, \"hi\": -0.0181, \"win\": 0.001}, \"mask_score\": {\"delta\": -0.0327, \"lo\": -0.0544, \"hi\": -0.0126, \"win\": 0.001}}, \"pass\": false}" } - ] + ], + "host": "mx-spark-01", + "started": "2026-10-26T01:43:39" } diff --git a/runs/README.md b/runs/README.md index 70a442af..39d7be72 100644 --- a/runs/README.md +++ b/runs/README.md @@ -26,6 +26,7 @@ Generated by `python tools/ledger.py render`; do not edit by hand. | 2026-10-23_v5-s-noflip-mask1 | promoted | dataset/2026-10-22_v5 | models/base/yolo26s-seg.pt | yolo26s-seg-v5-s-noflip-mask1-2026-10-25 | 0.761 | 0.861 | yes | 2026-10-25T22:15 | | 2026-10-25_v5-amp | gate_failed | dataset/2026-10-22_v5 | models/base/yolo26n-seg.pt | yolo26n-seg-v5-amp-2026-10-25 | 0.746 | 0.865 | no | 2026-10-25T21:37 | | 2026-10-25_v5-warm | gate_failed | dataset/2026-10-22_v5 | models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/weights.pt | weights-seg-v5-warm-2026-10-26 | 0.757 | 0.861 | no | 2026-10-26T01:43 | +| 2026-10-26_v5h-noflip-mask1 | gate_failed | dataset/2026-10-26_v5h | models/base/yolo26n-seg.pt | yolo26n-seg-v5h-noflip-mask1-2026-10-26 | 0.716 | 0.866 | no | 2026-10-26T09:16 | States: exported → queued → training → measured → gate_passed → gate_failed → promoted → deployed (or aborted). @@ -212,3 +213,10 @@ States: exported → queued → training → measured → gate_passed → gate_f - 2026-10-25T21:54:51 · training · jungfrau@mx-spark-01 — train_run.py - 2026-10-26T01:43:22 · measured · jungfrau@mx-spark-01 - 2026-10-26T01:43:22 · gate_failed · jungfrau@mx-spark-01 — {"baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/gold_report.json", "f1_delta": -0.0039, "mask_iou_delta": -0.0075, "mask_score": 0.6755, "mask_score_baseline": 0.6831, "matched_only_iou_delta": -0.0001, "class_f1_delta": {"loop_all": 0.001, "pin": -0.0102}, "pass_point_rule": false, "rule": "paired bootstrap", "bootstrap": {"frames": 335, "mounts": 300, "draws": 2000, "f1": {"delta": -0.0039, "lo": -0.0266, "hi": 0.0186, "win": 0.377}, "mask_score": {"delta": -0.0075, "lo": -0.0241, "hi": 0.0084, "win": 0.171}}, "pass": false} + +## 2026-10-26_v5h-noflip-mask1 + +- 2026-10-26T01:43:39 · exported · jungfrau@mx-spark-01 — promoted recipe (fliplr 0, mask_ratio 1) on dataset v5h: v5 with half of the accepted-unchanged frames (export.accepted_share 0.5, rare classes kept), gate only, Spark +- 2026-10-26T01:43:39 · training · jungfrau@mx-spark-01 — train_run.py +- 2026-10-26T09:16:24 · measured · jungfrau@mx-spark-01 +- 2026-10-26T09:16:24 · gate_failed · jungfrau@mx-spark-01 — {"baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/gold_report.json", "f1_delta": -0.0448, "mask_iou_delta": -0.0327, "mask_score": 0.6503, "mask_score_baseline": 0.6831, "matched_only_iou_delta": 0.0043, "class_f1_delta": {"loop_all": -0.0483, "pin": -0.0221}, "pass_point_rule": false, "rule": "paired bootstrap", "bootstrap": {"frames": 335, "mounts": 300, "draws": 2000, "f1": {"delta": -0.0448, "lo": -0.074, "hi": -0.0181, "win": 0.001}, "mask_score": {"delta": -0.0327, "lo": -0.0544, "hi": -0.0126, "win": 0.001}}, "pass": false}