From a2729c065e39e75faab67fd6b4de67f86022b4b5 Mon Sep 17 00:00:00 2001 From: pikaliov Date: Mon, 18 May 2026 15:48:49 +0300 Subject: [PATCH] belka_gate_fusions: trainable version --- src/models/dual_encoder.py | 1 - src/models/residual_fusions.py | 10 ++++++++++ src/training/train.py | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/models/dual_encoder.py b/src/models/dual_encoder.py index 8d6f743..e88c058 100644 --- a/src/models/dual_encoder.py +++ b/src/models/dual_encoder.py @@ -23,7 +23,6 @@ import torch.nn.functional as F # residual fusions exp from .residual_fusions import ResidualGateType, GatedFusionResidual -# from residual_fusions import ResidualGateType, GatedFusionResidual class ProjectionHead(nn.Module): diff --git a/src/models/residual_fusions.py b/src/models/residual_fusions.py index ff5c592..5333d77 100644 --- a/src/models/residual_fusions.py +++ b/src/models/residual_fusions.py @@ -142,3 +142,13 @@ class GatedFusionResidual(nn.Module): fused_vec = self.FuseARGFCat(img_feat=img_feat, text_feat=text_feat) return fused_vec + + @property + def gate_value(self) -> float: + """Current gate value (image weight). 1.0 = text ignored.""" + if self.baseline_mode: + return 1.0 + return torch.sigmoid(self.alpha).item() + + + diff --git a/src/training/train.py b/src/training/train.py index 723d1c4..2265c84 100644 --- a/src/training/train.py +++ b/src/training/train.py @@ -56,8 +56,8 @@ class TrainConfig: self, train_query_file: str = "Index/train_query.txt", val_query_file: str = "Index/test_query.txt", - data_root: str = "/mnt/data1tb/cvgl_datasets/UAV-GeoLoc", - output_dir: str = "out/caption_test", + data_root: str = "/media/servml/SSD_2_TB/datasets/cvgl_datasets/UAV-GeoLoc", + output_dir: str = "out/caption_test_exp_gate_SRGF", epochs: int = 10, batch_size: int = 128, num_workers: int = 4,