Add stripnet_freeze flag for full StripNet fine-tune mode

When stripnet_freeze=False, all StripNet backbone params train end-to-end
with a separate optimizer group at lr * stripnet_backbone_lr_factor (default
0.1, so 1e-5 with default learning_rate=1e-4) — typical fine-tuning practice
for ImageNet-pretrained CNNs to avoid catastrophic forgetting.

Conv-MONA is now optional (stripnet_mona_last_n_stages=0 disables it). Three
modes are now supported:
  - frozen + MONA: PEFT-style (~1.2M trainable, original default)
  - unfrozen, no MONA: full fine-tune (~13.85M, all backbone params)
  - unfrozen + MONA: hybrid (~14.5M, backbone + extra adapters)

_build_param_groups: new "backbone" group identifies image_encoder.backbone.*
params (excluding mona_*) when backbone="stripnet"; assigned lr factor
controls fine-tune step size independently from text/MONA groups.

conf/gtauav_balanced_stripnet_unfrozen.gin + baseline variant: ready-to-use
configs for full fine-tune experiment.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
pikaliov
2026-04-25 16:04:24 +03:00
parent d4cb2dd300
commit c6fcd2222c
4 changed files with 63 additions and 9 deletions

View File

@@ -0,0 +1,17 @@
# GTA-UAV Balanced (StripNet, fully unfrozen): all StripNet layers trainable.
# Backbone trains with reduced LR (lr * stripnet_backbone_lr_factor).
# Conv-MONA disabled by default — full fine-tune supplies enough capacity.
# Set stripnet_mona_last_n_stages > 0 if you want MONA + fine-tune hybrid.
#
# Note: StripNet uses BatchNorm. With small batch (8) and gradient accumulation,
# BN running stats may drift. Watch validation loss for instability.
include 'conf/gtauav_balanced_stripnet.gin'
# ---- Unfreeze backbone ----
TrainConfigGTAUAV.stripnet_freeze = False
TrainConfigGTAUAV.stripnet_mona_last_n_stages = 0 # disable Conv-MONA (full fine-tune handles adaptation)
TrainConfigGTAUAV.stripnet_backbone_lr_factor = 0.1 # backbone lr = 1e-4 * 0.1 = 1e-5
# ---- Output ----
TrainConfigGTAUAV.output_dir = "out/gtauav/with_text_stripnet_unfrozen"

View File

@@ -0,0 +1,8 @@
# GTA-UAV Baseline (StripNet, fully unfrozen): no text fusion. For Δ R@1
# against gtauav_balanced_stripnet_unfrozen.gin.
include 'conf/gtauav_balanced_stripnet_unfrozen.gin'
TrainConfigGTAUAV.baseline_mode = True
TrainConfigGTAUAV.output_dir = "out/gtauav/baseline_stripnet_unfrozen"
TrainConfigGTAUAV.use_gradcam = False