Fix Grad-CAM crash in shared encoder mode

Access model.image_encoder instead of model.drone_encoder/sat_encoder
when shared_encoder=True. Caused AttributeError at eval epoch 4.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
pikaliov
2026-04-22 00:36:06 +03:00
parent 7cc068e18c
commit b0e87c07ef

View File

@@ -200,8 +200,11 @@ def generate_gradcam_samples(
save_dir.mkdir(parents=True, exist_ok=True)
model.eval()
cam_drone = DINOv3GradCAM(model.drone_encoder, target_layer_idx=-1)
cam_sat = DINOv3GradCAM(model.sat_encoder, target_layer_idx=-1)
# Shared encoder mode uses single image_encoder for both branches.
drone_enc = model.image_encoder if model.shared_encoder else model.drone_encoder
sat_enc = model.image_encoder if model.shared_encoder else model.sat_encoder
cam_drone = DINOv3GradCAM(drone_enc, target_layer_idx=-1)
cam_sat = DINOv3GradCAM(sat_enc, target_layer_idx=-1)
overlays = []
batch = next(iter(dataloader))