diff --git a/docs/CODEX_EXECUTION_LOG.md b/docs/CODEX_EXECUTION_LOG.md index c331a616..10689b0c 100644 --- a/docs/CODEX_EXECUTION_LOG.md +++ b/docs/CODEX_EXECUTION_LOG.md @@ -11963,3 +11963,25 @@ Open: protected test and pure-background sets. - Obtain final representative human contact-sheet approval, promote the exact checksummed model, and redeploy from the canonical Tower directory. +## 2026-07-29 - V44 Flemish corpus expansion and V45 training loop + +- Acquired twelve independent Flemish train-only AOIs covering dense coastal + development, ribbon development, industry, dunes, docks and pure-empty + agricultural background. The immutable expansion manifest SHA-256 is + `62fdb4adee46ff67a40636f30a22fc97b8c9bd14516cbe0a24ed0de2db56f4fb`. +- Refined 2,391 labels with SAM2 on `cuda:0`; 124 unsafe refinements fell back + to their source geometry. Lossless overlap retiling retained all 2,515 + unique source labels in 192 tiles. +- Composed the 168-AOI V44 corpus and retained the exact V42 calibration, + protected-test, background-test and internal-validation assignments. The + rotated manifest SHA-256 is + `448bb3ec426a6af129f01d29732160f84b9936c9871a033de13a7d98b9d25112`. +- Corpus evidence reports 30,113 accepted features, zero temporal-unknown + samples, zero spatial leakage and zero protected samples in training. The + YOLO dataset-quality audit passed. Automated corpus checks have no failures; + final human contact-sheet review remains deliberately deferred until every + model release gate passes. +- Added the reproducible V45 command. It starts from the strongest V43 Flemish + checkpoint (`iteration-005`, SHA-256 + `be8c5a4d27dfcd03e29e59ce78ea66d3c772c3e612c08b71fd457d3006001b71`) + and trains against the expanded V44 corpus on the NVIDIA server. diff --git a/scripts/tower-v45-v44-loop-command.json b/scripts/tower-v45-v44-loop-command.json new file mode 100644 index 00000000..9bdf729d --- /dev/null +++ b/scripts/tower-v45-v44-loop-command.json @@ -0,0 +1,73 @@ +[ + "docker", + "exec", + "-d", + "geointel", + "/opt/geointel/venv/bin/python", + "/app/scripts/run_belgium_building_training_loop.py", + "--initial-model", + "/app/storage/training/building-be-v43-v42-closed-loop-r1/iteration-005/candidate.pt", + "--train-yaml", + "/app/storage/operator-data/building-be-v44-rotated-holdouts-r1/train/dataset.yaml", + "--train-summary", + "/app/storage/operator-data/building-be-v44-rotated-holdouts-r1/train/yolo_tile_dataset_summary.json", + "--dataset-audit", + "/app/storage/training/building-be-v44-corpus-audit-r1/belgium-building-corpus-audit.json", + "--train-quality-audit", + "/app/storage/training/building-be-v44-yolo-quality-audit-r1/operator_yolo_dataset_quality_audit.json", + "--calibration-summary", + "/app/storage/operator-data/building-be-v44-rotated-holdouts-r1/calibration/yolo_tile_dataset_summary.json", + "--test-summary", + "/app/storage/operator-data/building-be-v44-rotated-holdouts-r1/test/yolo_tile_dataset_summary.json", + "--background-summary", + "/app/storage/operator-data/building-be-v44-rotated-holdouts-r1/background-test/yolo_tile_dataset_summary.json", + "--corpus-manifest", + "/app/storage/operator-data/building-be-v44-rotated-holdouts-r1/operator_samples_manifest.json", + "--output-dir", + "/app/storage/training/building-be-v45-v44-closed-loop-r1", + "--iterations", + "20", + "--epochs", + "80", + "--patience", + "8", + "--batch", + "8", + "--workers", + "0", + "--max-det", + "1000", + "--imgsz", + "640", + "--optimizer", + "AdamW", + "--lr0", + "0.0001", + "--mosaic", + "0", + "--scale", + "0.15", + "--translate", + "0.05", + "--degrees", + "180", + "--flipud", + "0.5", + "--fliplr", + "0.5", + "--warmup-epochs", + "1", + "--warmup-bias-lr", + "0.01", + "--hsv-h", + "0.01", + "--hsv-s", + "0.2", + "--hsv-v", + "0.15", + "--seed", + "20260944", + "--yolo", + "/opt/geointel/venv/bin/yolo", + "--evaluate-initial-model" +]