- Single DINOv3 WEB for both drone and satellite branches (shared_encoder=True default) - One set of MONA adapters instead of two: 7M trainable vs 14M - Total params: 438M (was 748M), trainable: 10.6M (was 17.6M) - Asymmetric mode still available via shared_encoder=False - Add gradient accumulation (grad_accum_steps, --grad-accum CLI flag) - Update model summary in README Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
55 lines
1.7 KiB
Plaintext
55 lines
1.7 KiB
Plaintext
# GTA-UAV Balanced: GatedFusion with L1/L2/L3 captions on both branches.
|
|
# query = sigma(alpha) * drone + (1-sigma(alpha)) * text -> InfoNCE vs gallery
|
|
# 10 epochs, DINOv3 + DGTRS-CLIP, MONA + LoRA adapters.
|
|
#
|
|
# NOTE: TrainConfigGTAUAV is registered by train_gtauav.py before gin parsing.
|
|
# InfoNCELoss is registered via import below.
|
|
|
|
import src.losses.multi_infonce
|
|
|
|
# ---- Training ----
|
|
TrainConfigGTAUAV.epochs = 10
|
|
TrainConfigGTAUAV.batch_size = 8
|
|
TrainConfigGTAUAV.num_workers = 4
|
|
TrainConfigGTAUAV.learning_rate = 1e-4
|
|
TrainConfigGTAUAV.text_lr_factor = 0.1
|
|
TrainConfigGTAUAV.weight_decay = 1e-4
|
|
TrainConfigGTAUAV.grad_clip = 1.0
|
|
TrainConfigGTAUAV.grad_accum_steps = 1
|
|
TrainConfigGTAUAV.use_amp = True
|
|
TrainConfigGTAUAV.eval_every = 2
|
|
TrainConfigGTAUAV.warmup_epochs = 2
|
|
TrainConfigGTAUAV.seed = 42
|
|
TrainConfigGTAUAV.device = "cuda"
|
|
|
|
# ---- Model ----
|
|
TrainConfigGTAUAV.init_gate = 0.7
|
|
TrainConfigGTAUAV.baseline_mode = False
|
|
TrainConfigGTAUAV.shared_encoder = True
|
|
|
|
# ---- Loss ----
|
|
TrainConfigGTAUAV.tau_init = 0.07
|
|
TrainConfigGTAUAV.label_smoothing = 0.1
|
|
TrainConfigGTAUAV.weight_q2g = 0.6
|
|
TrainConfigGTAUAV.weight_g2q = 0.4
|
|
TrainConfigGTAUAV.learnable_temperature = True
|
|
|
|
# ---- Output ----
|
|
TrainConfigGTAUAV.output_dir = "out/gtauav/with_text"
|
|
|
|
# ---- Tracking ----
|
|
TrainConfigGTAUAV.use_wandb = False
|
|
TrainConfigGTAUAV.use_tb = True
|
|
TrainConfigGTAUAV.use_gradcam = True
|
|
TrainConfigGTAUAV.gradcam_every = 5
|
|
TrainConfigGTAUAV.use_profiler = False
|
|
TrainConfigGTAUAV.log_grad_norms = True
|
|
|
|
# ---- InfoNCE Loss (gin-configurable) ----
|
|
InfoNCELoss.temperature_init = 0.07
|
|
InfoNCELoss.temperature_final = 0.01
|
|
InfoNCELoss.label_smoothing = 0.1
|
|
InfoNCELoss.weight_q2g = 0.6
|
|
InfoNCELoss.weight_g2q = 0.4
|
|
InfoNCELoss.learnable_temperature = True
|