Train against merged national roof instances
This commit is contained in:
@@ -29,3 +29,14 @@ def test_process_detection_requires_exact_marker(monkeypatch) -> None:
|
|||||||
monkeypatch.setattr(MODULE.subprocess, "run", lambda *args, **kwargs: Result())
|
monkeypatch.setattr(MODULE.subprocess, "run", lambda *args, **kwargs: Result())
|
||||||
assert MODULE.process_active("geointel", "run_belgium_building_training_loop.py")
|
assert MODULE.process_active("geointel", "run_belgium_building_training_loop.py")
|
||||||
assert not MODULE.process_active("geointel", "other_loop.py")
|
assert not MODULE.process_active("geointel", "other_loop.py")
|
||||||
|
|
||||||
|
|
||||||
|
def test_write_state_creates_output_directory_atomically(tmp_path: Path) -> None:
|
||||||
|
state_path = tmp_path / "new-run" / "supervisor-state.json"
|
||||||
|
|
||||||
|
MODULE.write_state(state_path, {"schema_version": 1, "status": "monitoring"})
|
||||||
|
|
||||||
|
written = json.loads(state_path.read_text(encoding="utf-8"))
|
||||||
|
assert written["status"] == "monitoring"
|
||||||
|
assert written["updated_at"]
|
||||||
|
assert not state_path.with_suffix(".json.tmp").exists()
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ def process_active(container: str, marker: str) -> bool:
|
|||||||
|
|
||||||
def write_state(path: Path, state: dict) -> None:
|
def write_state(path: Path, state: dict) -> None:
|
||||||
state["updated_at"] = datetime.now(UTC).isoformat()
|
state["updated_at"] = datetime.now(UTC).isoformat()
|
||||||
|
path.parent.mkdir(parents=True, exist_ok=True)
|
||||||
temporary = path.with_suffix(path.suffix + ".tmp")
|
temporary = path.with_suffix(path.suffix + ".tmp")
|
||||||
temporary.write_text(json.dumps(state, indent=2), encoding="utf-8")
|
temporary.write_text(json.dumps(state, indent=2), encoding="utf-8")
|
||||||
temporary.replace(path)
|
temporary.replace(path)
|
||||||
|
|||||||
@@ -0,0 +1,75 @@
|
|||||||
|
[
|
||||||
|
"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-v47-merged-rotated-holdouts-r1/train/dataset.yaml",
|
||||||
|
"--train-summary",
|
||||||
|
"/app/storage/operator-data/building-be-v47-merged-rotated-holdouts-r1/train/yolo_tile_dataset_summary.json",
|
||||||
|
"--dataset-audit",
|
||||||
|
"/app/storage/training/building-be-v47-corpus-audit-r1/belgium-building-corpus-audit.json",
|
||||||
|
"--train-quality-audit",
|
||||||
|
"/app/storage/training/building-be-v47-yolo-quality-audit-r1/operator_yolo_dataset_quality_audit.json",
|
||||||
|
"--calibration-summary",
|
||||||
|
"/app/storage/operator-data/building-be-v47-merged-rotated-holdouts-r1/calibration/yolo_tile_dataset_summary.json",
|
||||||
|
"--test-summary",
|
||||||
|
"/app/storage/operator-data/building-be-v47-merged-rotated-holdouts-r1/test/yolo_tile_dataset_summary.json",
|
||||||
|
"--background-summary",
|
||||||
|
"/app/storage/operator-data/building-be-v47-merged-rotated-holdouts-r1/background-test/yolo_tile_dataset_summary.json",
|
||||||
|
"--corpus-manifest",
|
||||||
|
"/app/storage/operator-data/building-be-v47-merged-rotated-holdouts-r1/operator_samples_manifest.json",
|
||||||
|
"--output-dir",
|
||||||
|
"/app/storage/training/building-be-v48-v47-merged-loop-r1",
|
||||||
|
"--iterations",
|
||||||
|
"20",
|
||||||
|
"--epochs",
|
||||||
|
"100",
|
||||||
|
"--patience",
|
||||||
|
"12",
|
||||||
|
"--batch",
|
||||||
|
"8",
|
||||||
|
"--workers",
|
||||||
|
"0",
|
||||||
|
"--max-det",
|
||||||
|
"1000",
|
||||||
|
"--imgsz",
|
||||||
|
"640",
|
||||||
|
"--optimizer",
|
||||||
|
"AdamW",
|
||||||
|
"--lr0",
|
||||||
|
"0.00005",
|
||||||
|
"--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",
|
||||||
|
"20260948",
|
||||||
|
"--yolo",
|
||||||
|
"/opt/geointel/venv/bin/yolo"
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user