diff --git a/src/conf/models_common_conf.py b/src/conf/models_common_conf.py index 8b13789..6121cd8 100644 --- a/src/conf/models_common_conf.py +++ b/src/conf/models_common_conf.py @@ -1 +1,18 @@ +import gin + +@gin.configurable +class ModelsCommonConfig: + """Common architecture switches shared by all backbones.""" + def __init__( + self, + backbone: str = "dinov3", # 'dinov3' | 'stripnet' | 'sofia_v1' | 'sofia_v71' + baseline_mode: bool = False, # text disabled, gate forced 1.0 + init_gate: float = 0.7, + lrsclip_path: str = "nn_models/LRSCLIP/DGTRS-CLIP-ViT-L-14.pt", + ) -> None: + self.backbone = backbone + self.baseline_mode = baseline_mode + self.init_gate = init_gate + self.lrsclip_path = lrsclip_path + diff --git a/src/conf/models_dinov3_conf.py b/src/conf/models_dinov3_conf.py index 8b13789..816f7fb 100644 --- a/src/conf/models_dinov3_conf.py +++ b/src/conf/models_dinov3_conf.py @@ -1 +1,19 @@ +import gin +@gin.configurable +class DINOv3ModelsConfig: + def __init__( + self, + dino_web_path: str = "nn_models/DINO_WEB/dinov3-vitl16-pretrain-lvd1689m.pth", + dino_sat_path: str = "nn_models/DINO_SAT/model.safetensors", + shared_encoder: bool = True, + mona_bottleneck: int = 64, + mona_last_n_blocks: int = 12, + ) -> None: + self.dino_web_path = dino_web_path + self.dino_sat_path = dino_sat_path + self.shared_encoder = shared_encoder + self.mona_bottleneck = mona_bottleneck + self.mona_last_n_blocks = mona_last_n_blocks + + diff --git a/src/conf/models_sofia_v1_conf.py b/src/conf/models_sofia_v1_conf.py index 8b13789..525b5c4 100644 --- a/src/conf/models_sofia_v1_conf.py +++ b/src/conf/models_sofia_v1_conf.py @@ -1 +1,37 @@ +import gin +@gin.configurable +class SOFIAv1ModelsConfig: + def __init__( + self, + # Backbone. + variant: str = "small", # 'tiny_tiny' | 'tiny' | 'small' | 'small_v2' + in_channels: int = 3, + input_size: int = 256, + dcn_variant: str = "v2", # 'v2' (stable) | 'v4' (faster, leaks) + # Heads. + d_descriptor: int = 1024, + return_normalized: bool = False, + # Altitude-FiLM. + use_film_altitude: bool = True, + altitude_norm: float = 500.0, + # Text-FiLM. + use_text_film_uav: bool = True, + use_text_film_sat: bool = True, + text_film_dim: int = 1024, + text_film_hidden: int = 256, + ) -> None: + self.variant = variant + self.in_channels = in_channels + self.input_size = input_size + self.dcn_variant = dcn_variant + self.d_descriptor = d_descriptor + self.return_normalized = return_normalized + self.use_film_altitude = use_film_altitude + self.altitude_norm = altitude_norm + self.use_text_film_uav = use_text_film_uav + self.use_text_film_sat = use_text_film_sat + self.text_film_dim = text_film_dim + self.text_film_hidden = text_film_hidden + + diff --git a/src/conf/models_sofia_v71_conf.py b/src/conf/models_sofia_v71_conf.py index 8b13789..e69de29 100644 --- a/src/conf/models_sofia_v71_conf.py +++ b/src/conf/models_sofia_v71_conf.py @@ -1 +0,0 @@ - diff --git a/src/conf/models_stripnet_conf.py b/src/conf/models_stripnet_conf.py index 8b13789..56bcf50 100644 --- a/src/conf/models_stripnet_conf.py +++ b/src/conf/models_stripnet_conf.py @@ -1 +1,16 @@ +import gin +@gin.configurable +class StripNetModelsConfig: + def __init__( + self, + stripnet_path: str = "nn_models/STRIPNET/stripnet_s.pth", + stripnet_freeze: bool = True, + stripnet_mona_last_n_stages: int = 2, + stripnet_backbone_lr_factor: float = 0.1, + ) -> None: + self.stripnet_path = stripnet_path + self.stripnet_freeze = stripnet_freeze + self.stripnet_mona_last_n_stages = stripnet_mona_last_n_stages + self.stripnet_backbone_lr_factor = stripnet_backbone_lr_factor +