Disable YOLO training plot side effects
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-07-07 05:25:47 +02:00
parent 2c9002785e
commit 3524ee7fb2
4 changed files with 6 additions and 0 deletions
+1
View File
@@ -11,6 +11,7 @@
- Added `scripts/export_operator_yolo_dataset.py` to convert prepared operator orthophoto/GRB sample pairs into a standard local YOLO detection dataset with `dataset.yaml`, train/validation image folders, label folders and `yolo_dataset_summary.json`. - Added `scripts/export_operator_yolo_dataset.py` to convert prepared operator orthophoto/GRB sample pairs into a standard local YOLO detection dataset with `dataset.yaml`, train/validation image folders, label folders and `yolo_dataset_summary.json`.
- Added `scripts/train_operator_yolo_detector.sh` as an operator-only training smoke wrapper that uses an existing local base `.pt` model and writes a trained local `.pt` artifact plus `training_summary.json`. - Added `scripts/train_operator_yolo_detector.sh` as an operator-only training smoke wrapper that uses an existing local base `.pt` model and writes a trained local `.pt` artifact plus `training_summary.json`.
- Disabled Ultralytics plot generation in the training wrapper so the smoke path avoids auxiliary plot/font network behavior.
- Added readiness coverage for the exporter Python compile check and training wrapper shell syntax. - Added readiness coverage for the exporter Python compile check and training wrapper shell syntax.
- Added regression coverage in `backend/tests/test_sprint129_operator_yolo_training_dataset.py`. - Added regression coverage in `backend/tests/test_sprint129_operator_yolo_training_dataset.py`.
- Updated operator documentation for dataset export, training smoke usage and the requirement to benchmark any trained model through the existing real-data Detection + QA matrix before treating it as useful. - Updated operator documentation for dataset export, training smoke usage and the requirement to benchmark any trained model through the existing real-data Detection + QA matrix before treating it as useful.
@@ -63,6 +63,7 @@ def test_operator_yolo_train_smoke_script_contract() -> None:
assert "dataset.yaml" in script assert "dataset.yaml" in script
assert "from ultralytics import YOLO" in script assert "from ultralytics import YOLO" in script
assert "model.train" in script assert "model.train" in script
assert "plots=False" in script
assert "training_summary.json" in script assert "training_summary.json" in script
assert "download" not in script.lower() assert "download" not in script.lower()
assert "fixture_mode" not in script assert "fixture_mode" not in script
+3
View File
@@ -21,6 +21,9 @@ Tested:
- `python scripts\export_operator_yolo_dataset.py --help` passed without requiring local GIS dependencies. - `python scripts\export_operator_yolo_dataset.py --help` passed without requiring local GIS dependencies.
- `python -m py_compile scripts\export_operator_yolo_dataset.py` passed. - `python -m py_compile scripts\export_operator_yolo_dataset.py` passed.
- `bash -n scripts/train_operator_yolo_detector.sh` passed. - `bash -n scripts/train_operator_yolo_detector.sh` passed.
- Live Tower export passed: `/app/storage/operator-data/yolo-building-dataset` contains 3 images and 1427 labels from the current Geel/Mol/Turnhout samples.
- Live Tower training smoke passed with the existing `/app/models/yolov8n.pt` base model and wrote `/app/models/geointel-building-yolov8n-smoke.pt`.
- The first live smoke showed Ultralytics fetching an auxiliary plot font. The wrapper now sets `plots=False` so the operator smoke path does not invoke plot/font network behavior.
Open: Open:
- Run the exporter and training smoke inside the AI-enabled Tower runtime, then benchmark the trained artifact through the existing multi-sample Detection + QA matrix. - Run the exporter and training smoke inside the AI-enabled Tower runtime, then benchmark the trained artifact through the existing multi-sample Detection + QA matrix.
+1
View File
@@ -106,6 +106,7 @@ model.train(
name=run_name, name=run_name,
exist_ok=True, exist_ok=True,
pretrained=True, pretrained=True,
plots=False,
verbose=True, verbose=True,
) )