Add g2q eval metrics and asymmetric MONA-24 configs

- _evaluate: compute R@K + AP for both directions (q2g and g2q) via inverted
  ground truth; g2q denominator counts only sat-tiles with at least one positive
  drone in the (sub)sampled query set. Surfaces in train.csv, val.csv,
  train_recall.csv, W&B summary, and final log.
- conf/gtauav_balanced_asym.gin: asymmetric WEB+SAT encoders, MONA in all 24
  ViT blocks (~17.6M trainable / ~733M total).
- conf/gtauav_baseline_asym.gin: same architecture, baseline_mode=True for
  Δ R@1 against balanced_asym.
- CLAUDE.md / README.md: document new configs, clarify that g2q is now
  computed (was claimed but missing).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
pikaliov
2026-04-25 13:47:02 +03:00
parent 8f8cbb14dd
commit 814586ce3b
5 changed files with 123 additions and 12 deletions

View File

@@ -0,0 +1,16 @@
# GTA-UAV Balanced (asymmetric, full MONA): WEB drone encoder + SAT satellite encoder.
# MONA injected into all 24 ViT blocks of each encoder.
# Same loss/sampling/optimizer as gtauav_balanced.gin; differs only in model arch.
#
# Trainable: ~17.6M (MONA 2× × 24 blocks + LoRA + TextFusionMLP + gates + tau)
# Total params: ~733M (2× DINOv3-L + DGTRS-CLIP)
# VRAM target (RTX 4090, 24 GB): ~16-20 GB at batch=8 with gradient checkpointing.
include 'conf/gtauav_balanced.gin'
# ---- Model overrides: asymmetric + full MONA ----
TrainConfigGTAUAV.shared_encoder = False # WEB for drone, SAT for satellite
TrainConfigGTAUAV.mona_last_n_blocks = 24 # MONA in all 24 ViT blocks (was 12)
# ---- Output ----
TrainConfigGTAUAV.output_dir = "out/gtauav/balanced_asym"

View File

@@ -0,0 +1,9 @@
# GTA-UAV Baseline (asymmetric, full MONA): no text fusion (gate forced to 1.0).
# WEB drone encoder + SAT satellite encoder, MONA in all 24 ViT blocks.
# Reference R@1 for delta computation against gtauav_balanced_asym.gin.
include 'conf/gtauav_balanced_asym.gin'
TrainConfigGTAUAV.baseline_mode = True
TrainConfigGTAUAV.output_dir = "out/gtauav/baseline_asym"
TrainConfigGTAUAV.use_gradcam = False