Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
173 commits
Select commit Hold shift + click to select a range
a03e98c
Add validation run of the best ckpt
gabrieletijunaityte May 27, 2026
34d35df
Merge branch 'develop' of github.com:WUR-AI/aether into train/alignment
gabrieletijunaityte May 28, 2026
1428e92
Add avr embedding modalities
gabrieletijunaityte May 28, 2026
e6c141e
Make search in power of 2, plus add max batch size
gabrieletijunaityte May 28, 2026
8e035d8
Add average embedding modalities
gabrieletijunaityte May 28, 2026
695bd3c
Add no gradient computation option if model is not trained
gabrieletijunaityte May 28, 2026
54bb273
Allow identity encoder for the average embeddings
gabrieletijunaityte May 28, 2026
fea48d5
Compute average embeddings into csv
gabrieletijunaityte May 28, 2026
0d1c4cd
Adapt identity encoder for average embeddings
gabrieletijunaityte May 28, 2026
90ebd95
Avoid gradient computation where not needed
gabrieletijunaityte May 28, 2026
545c3ce
Inference -> no_grad
gabrieletijunaityte May 29, 2026
4fa833d
Download GEE data in parallel
vdplasthijs May 29, 2026
1e0974e
Sample unlabelled aux data for UK s2bms
vdplasthijs May 29, 2026
ca46643
Add ability to load unlabelled data
gabrieletijunaityte Jun 2, 2026
af4f689
adding unlabbelled s2bms data, bypassing hook
vdplasthijs May 29, 2026
1249511
Load unlabelled and original s2bms together
vdplasthijs May 29, 2026
14ed922
adding unlabbelled splits, bypassing hook
vdplasthijs May 29, 2026
a5b35b3
adding unlabbelled s2bms data splits, bypassing hook
vdplasthijs May 29, 2026
bee388c
Add avr embedding modalities
gabrieletijunaityte Jun 1, 2026
991c604
Add setup flag
gabrieletijunaityte Jun 2, 2026
9052b2f
Re do unlabelled split
gabrieletijunaityte Jun 2, 2026
e991dc9
Add size print statements
gabrieletijunaityte Jun 2, 2026
e726b1c
Make format hook changes
gabrieletijunaityte Jun 2, 2026
325f0ee
Remove full model name printing
gabrieletijunaityte Jun 2, 2026
a67f56a
Hook security
gabrieletijunaityte Jun 2, 2026
7d80c9b
Fix logging
gabrieletijunaityte Jun 2, 2026
808d876
Fix: getting size
gabrieletijunaityte Jun 2, 2026
e349b5a
Hook fixes
gabrieletijunaityte Jun 2, 2026
633ff31
Save average embeddings to csv
gabrieletijunaityte Jun 5, 2026
57cc2cb
emb_ reading for csv of avr embeds
gabrieletijunaityte Jun 5, 2026
aa44264
Return name_loc parameter in dataset for tracing back data
gabrieletijunaityte Jun 5, 2026
13fcdc1
Freezing statement
gabrieletijunaityte Jun 5, 2026
9c85366
Add dtype conversion
gabrieletijunaityte Jun 5, 2026
025e1aa
Make geoclip projector as optional argument
gabrieletijunaityte Jun 5, 2026
38312df
Fix dataset name creation for multi-modal encoders
gabrieletijunaityte Jun 5, 2026
d6515e3
Data split and encoding merging for aef_256 averages
gabrieletijunaityte Jun 9, 2026
dff9d22
Fix embs from avr
gabrieletijunaityte Jun 9, 2026
c1a310f
Add name_loc extraction in collate function
gabrieletijunaityte Jun 9, 2026
d46902c
Verbose early stopping
gabrieletijunaityte Jun 9, 2026
994a293
Temp fix to get inference model working
gabrieletijunaityte Jun 9, 2026
491071d
import clean up
gabrieletijunaityte Jun 9, 2026
5bf32aa
Temp fix to get inference model working
gabrieletijunaityte Jun 9, 2026
793b115
Temp fix to get inference model working
gabrieletijunaityte Jun 9, 2026
b41a027
Fix cache dir
gabrieletijunaityte Jun 9, 2026
0f3a90e
Add split file
gabrieletijunaityte Jun 9, 2026
aeb2b3a
Fix adopt encoder
gabrieletijunaityte Jun 9, 2026
a015517
If adopted, do not train
gabrieletijunaityte Jun 9, 2026
b5e5d3f
Move projector to new group of encoders: projectors and adapters
gabrieletijunaityte Jun 9, 2026
9e425bb
Introduce adapters to the alignment model
gabrieletijunaityte Jun 9, 2026
ac72313
Print not log when adopting encoder
gabrieletijunaityte Jun 9, 2026
8312d3b
wandb logging updates
gabrieletijunaityte Jun 9, 2026
9dbc9cc
projectors adapters importable
gabrieletijunaityte Jun 9, 2026
825f657
Validation loss based on random selection of templates
gabrieletijunaityte Jun 10, 2026
c71cf5e
fix config saving bug for missing parts
gabrieletijunaityte Jun 10, 2026
0f8c91a
Fix wandb interactions with alignment project
gabrieletijunaityte Jun 10, 2026
9f033da
Remove extra projector for adapters/projectors
gabrieletijunaityte Jun 10, 2026
8fb4a0b
Embed concepts once model is put on correct device
gabrieletijunaityte Jun 15, 2026
ad4bf96
New data splits and their explanations
gabrieletijunaityte Jun 16, 2026
0e00413
Seaborn for visualisation
gabrieletijunaityte Jun 16, 2026
0d16c28
Fix cache dir to be in the data folder
gabrieletijunaityte Jun 16, 2026
d24ad39
Return standardised aux values if requested
gabrieletijunaityte Jun 16, 2026
be1bded
Return column ids used in the location template
gabrieletijunaityte Jun 16, 2026
c2c440f
Add statistics and return aux ids for caption
gabrieletijunaityte Jun 16, 2026
144b448
make geo and text adapters not logged in hparams
gabrieletijunaityte Jun 16, 2026
058b65b
Inspect text encoders
gabrieletijunaityte Jun 16, 2026
13aa425
Fix LLM downloading, flatten captions for efficient forward pass
gabrieletijunaityte Jun 16, 2026
710624c
Add aux stats calculation
gabrieletijunaityte Jun 16, 2026
a27c52e
Create soft contrastive loss
gabrieletijunaityte Jun 16, 2026
6054f4b
Implement loss pass
gabrieletijunaityte Jun 16, 2026
5991757
Dimension miss match warning
gabrieletijunaityte Jun 16, 2026
e24d18b
Add ability to load unlabelled data
vdplasthijs May 29, 2026
0e6e426
Download average AEF data
vdplasthijs Jun 9, 2026
d83f2c4
download 128 av data
vdplasthijs Jun 16, 2026
e7d0120
update nbs
vdplasthijs Jun 16, 2026
cb9922d
New datasplits
gabrieletijunaityte Jun 16, 2026
30de73b
fix wrong variable name
gabrieletijunaityte Jun 16, 2026
8bd56eb
Split after getting missing data, in the setup() call
gabrieletijunaityte Jun 16, 2026
433fe84
Add missing aef data filtering out
gabrieletijunaityte Jun 16, 2026
f1736a0
Include setup method in the tests
gabrieletijunaityte Jun 16, 2026
07b7a9d
Include setup method in the tests
gabrieletijunaityte Jun 16, 2026
d4b92eb
More test (local) fixes
gabrieletijunaityte Jun 16, 2026
27b607b
More test (local) fixes
gabrieletijunaityte Jun 16, 2026
dee6f20
Add ability to load unlabelled data
gabrieletijunaityte Jun 2, 2026
a39d996
Re do unlabelled split
gabrieletijunaityte Jun 2, 2026
d8c52a1
Add size print statements
gabrieletijunaityte Jun 2, 2026
ff10176
Save average embeddings to csv
gabrieletijunaityte Jun 5, 2026
9064826
Data split and encoding merging for aef_256 averages
gabrieletijunaityte Jun 9, 2026
3338f3e
New data splits and their explanations
gabrieletijunaityte Jun 16, 2026
081898d
Add aux stats calculation
gabrieletijunaityte Jun 16, 2026
de0a4eb
fix the splits
gabrieletijunaityte Jun 16, 2026
0fa94b7
Add validation run of the best ckpt
gabrieletijunaityte May 27, 2026
ecabcce
Add avr embedding modalities
gabrieletijunaityte May 28, 2026
5ac35e9
Make search in power of 2, plus add max batch size
gabrieletijunaityte May 28, 2026
9c7ac99
Add average embedding modalities
gabrieletijunaityte May 28, 2026
ba07d3c
Add no gradient computation option if model is not trained
gabrieletijunaityte May 28, 2026
e4c4485
Allow identity encoder for the average embeddings
gabrieletijunaityte May 28, 2026
dcd17d5
Compute average embeddings into csv
gabrieletijunaityte May 28, 2026
c4506bb
Adapt identity encoder for average embeddings
gabrieletijunaityte May 28, 2026
eb85a3c
Avoid gradient computation where not needed
gabrieletijunaityte May 28, 2026
d495258
Inference -> no_grad
gabrieletijunaityte May 29, 2026
6658deb
Add ability to load unlabelled data
gabrieletijunaityte Jun 2, 2026
87c0dda
Add avr embedding modalities
gabrieletijunaityte Jun 1, 2026
2df820a
Add setup flag
gabrieletijunaityte Jun 2, 2026
44365a6
Re do unlabelled split
gabrieletijunaityte Jun 2, 2026
c3ac469
Add size print statements
gabrieletijunaityte Jun 2, 2026
0a58455
Make format hook changes
gabrieletijunaityte Jun 2, 2026
7a94948
Remove full model name printing
gabrieletijunaityte Jun 2, 2026
be55623
Hook security
gabrieletijunaityte Jun 2, 2026
547140a
Fix logging
gabrieletijunaityte Jun 2, 2026
b85a0a1
Fix: getting size
gabrieletijunaityte Jun 2, 2026
65f659b
Hook fixes
gabrieletijunaityte Jun 2, 2026
4a8ef1d
Save average embeddings to csv
gabrieletijunaityte Jun 5, 2026
fe3272c
emb_ reading for csv of avr embeds
gabrieletijunaityte Jun 5, 2026
f021b8a
Return name_loc parameter in dataset for tracing back data
gabrieletijunaityte Jun 5, 2026
3dee98d
Freezing statement
gabrieletijunaityte Jun 5, 2026
7d6a75b
Add dtype conversion
gabrieletijunaityte Jun 5, 2026
8585dd5
Make geoclip projector as optional argument
gabrieletijunaityte Jun 5, 2026
1a64581
Fix dataset name creation for multi-modal encoders
gabrieletijunaityte Jun 5, 2026
6323399
Data split and encoding merging for aef_256 averages
gabrieletijunaityte Jun 9, 2026
5484193
Fix embs from avr
gabrieletijunaityte Jun 9, 2026
ca5a8a3
Add name_loc extraction in collate function
gabrieletijunaityte Jun 9, 2026
25153cc
Verbose early stopping
gabrieletijunaityte Jun 9, 2026
a9c447d
Temp fix to get inference model working
gabrieletijunaityte Jun 9, 2026
cbb972e
Temp fix to get inference model working
gabrieletijunaityte Jun 9, 2026
10c5d0b
Temp fix to get inference model working
gabrieletijunaityte Jun 9, 2026
f20e950
Fix cache dir
gabrieletijunaityte Jun 9, 2026
cd05ecd
Add split file
gabrieletijunaityte Jun 9, 2026
467b56c
Fix adopt encoder
gabrieletijunaityte Jun 9, 2026
f59c407
If adopted, do not train
gabrieletijunaityte Jun 9, 2026
3627b2d
Move projector to new group of encoders: projectors and adapters
gabrieletijunaityte Jun 9, 2026
ea84d00
Introduce adapters to the alignment model
gabrieletijunaityte Jun 9, 2026
6a2f5f8
Print not log when adopting encoder
gabrieletijunaityte Jun 9, 2026
f0497c3
wandb logging updates
gabrieletijunaityte Jun 9, 2026
8d11ce2
projectors adapters importable
gabrieletijunaityte Jun 9, 2026
0765c6b
Validation loss based on random selection of templates
gabrieletijunaityte Jun 10, 2026
c29972f
fix config saving bug for missing parts
gabrieletijunaityte Jun 10, 2026
6b78516
Fix wandb interactions with alignment project
gabrieletijunaityte Jun 10, 2026
274948a
Remove extra projector for adapters/projectors
gabrieletijunaityte Jun 10, 2026
20de6fe
Embed concepts once model is put on correct device
gabrieletijunaityte Jun 15, 2026
a9220f3
New data splits and their explanations
gabrieletijunaityte Jun 16, 2026
58a179d
Seaborn for visualisation
gabrieletijunaityte Jun 16, 2026
706e4e8
Fix cache dir to be in the data folder
gabrieletijunaityte Jun 16, 2026
57d0f95
Return standardised aux values if requested
gabrieletijunaityte Jun 16, 2026
a579184
Return column ids used in the location template
gabrieletijunaityte Jun 16, 2026
40623f0
Add statistics and return aux ids for caption
gabrieletijunaityte Jun 16, 2026
936f403
make geo and text adapters not logged in hparams
gabrieletijunaityte Jun 16, 2026
8b905b8
Inspect text encoders
gabrieletijunaityte Jun 16, 2026
b256c38
Fix LLM downloading, flatten captions for efficient forward pass
gabrieletijunaityte Jun 16, 2026
2f94ecc
Add aux stats calculation
gabrieletijunaityte Jun 16, 2026
0f10083
Create soft contrastive loss
gabrieletijunaityte Jun 16, 2026
106d5bc
Implement loss pass
gabrieletijunaityte Jun 16, 2026
af0cee3
Dimension miss match warning
gabrieletijunaityte Jun 16, 2026
7b6c009
Add ability to load unlabelled data
vdplasthijs May 29, 2026
286a975
New datasplits
gabrieletijunaityte Jun 16, 2026
92e7d2e
Split after getting missing data, in the setup() call
gabrieletijunaityte Jun 16, 2026
b9081fd
Add ability to load unlabelled data
gabrieletijunaityte Jun 2, 2026
88e2b5e
Re do unlabelled split
gabrieletijunaityte Jun 2, 2026
9f5fe04
Add size print statements
gabrieletijunaityte Jun 2, 2026
ea5fc18
New data splits and their explanations
gabrieletijunaityte Jun 16, 2026
b51f91c
fix the splits
gabrieletijunaityte Jun 16, 2026
8596566
Merge remote-tracking branch 'origin/train/alignment' into train/alig…
gabrieletijunaityte Jun 17, 2026
1b323f0
Update stats based on train split only
gabrieletijunaityte Jun 17, 2026
eb32ee0
Fix error of missing wandb logger
gabrieletijunaityte Jun 17, 2026
8360805
Fix argument order mix-up
gabrieletijunaityte Jun 17, 2026
a030e60
Add aux stats computation notebook
gabrieletijunaityte Jun 17, 2026
120455b
Add average embedding computation notebook
gabrieletijunaityte Jun 17, 2026
0610a49
Fix config for the tests
gabrieletijunaityte Jun 17, 2026
ac9b5df
Fix tests
gabrieletijunaityte Jun 17, 2026
f7f352d
Correct explanations
gabrieletijunaityte Jun 17, 2026
9549ddf
Remove duplicate
gabrieletijunaityte Jun 17, 2026
8ff3ce1
Automatic experiment name generation
gabrieletijunaityte Jun 17, 2026
40f1a18
Automatic experiment name generation for prediction models
gabrieletijunaityte Jun 17, 2026
2256499
Add alignment config template with explanations
gabrieletijunaityte Jun 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions configs/callbacks/batch_size_finder.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.callbacks.BatchSizeFinder.html

_target_: lightning.pytorch.callbacks.BatchSizeFinder
mode: 'binsearch'
init_val: 16
mode: "power"
init_val: 16
max_val: 1024
2 changes: 1 addition & 1 deletion configs/callbacks/early_stopping.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ early_stopping:
monitor: ??? # quantity to be monitored, must be specified !!!
min_delta: 0. # minimum change in the monitored quantity to qualify as an improvement
patience: 3 # number of checks with no improvement after which training will be stopped
verbose: False # verbosity mode
verbose: true # verbosity mode
mode: "min" # "max" means higher metric value is better, can be also "min"
strict: True # whether to crash the training if monitor is not found in the validation metrics
check_finite: True # when set True, stops training when the monitor becomes NaN or infinite
Expand Down
2 changes: 1 addition & 1 deletion configs/data/butterfly_coords.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ num_workers: 8
pin_memory: true
split_mode: "from_file"
save_split: false
saved_split_file_name: "split_indices_s2bms_2024-08-14-1459.pth"
saved_split_file_name: "s2bms_unlabelled_union_val_test.pth"
seed: ${seed}
2 changes: 1 addition & 1 deletion configs/data/butterfly_coords_text.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@ num_workers: 8
pin_memory: true
split_mode: "from_file"
save_split: false
saved_split_file_name: "split_indices_s2bms_2024-08-14-1459.pth"
saved_split_file_name: "s2bms_unlabelled_union_val_test.pth"
seed: ${seed}
2 changes: 1 addition & 1 deletion configs/data/butterfly_coords_text_unlabelled.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@ num_workers: 8
pin_memory: true
split_mode: "from_file"
save_split: false
saved_split_file_name: "split_indices_s2bms+s2bms-unlabelled-20260529_2026-05-29-1438.pth"
saved_split_file_name: "s2bms_unlabelled_union_val_test.pth"
seed: ${seed}
2 changes: 1 addition & 1 deletion configs/data/butterfly_full_param_example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@ num_workers: 8
pin_memory: true
split_mode: "from_file"
save_split: false
saved_split_file_name: "split_indices_s2bms_2024-08-14-1459.pth"
saved_split_file_name: "s2bms_unlabelled_union_val_test.pth"
seed: ${seed}
2 changes: 1 addition & 1 deletion configs/data/butterfly_s2_rgb.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,5 @@ num_workers: 1
pin_memory: false
split_mode: "from_file" # default 'random'
save_split: false
saved_split_file_name: "split_indices_s2bms_2024-08-14-1459.pth"
saved_split_file_name: "s2bms_unlabelled_union_val_test.pth"
seed: ${seed}
44 changes: 38 additions & 6 deletions configs/experiment/alignment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,48 @@
# python train.py experiment=example

defaults:
- override /model: geoclip_alignment
- override /data: butterfly_coords_text
- override /metrics: contrastive_similarities
- override /model: s2bms_alignment
- override /data: s2bms_prediction
- override /metrics: s2bms_alignment

# all parameters below will be merged with parameters from default configurations set above
# this allows you to overwrite only specified parameters

model:
geo_encoder:
_target_: src.models.components.geo_encoders.geoclip.GeoClipCoordinateEncoder
geo_data_name: coords
geo_adapter:
_target_: src.models.components.projectors_adapters.mlp_projector.MLPProjector
nn_layers: 2
hidden_dim: 512
output_dim: 768
text_encoder:
_target_: src.models.components.text_encoders.clip_text_encoder.ClipTextEncoder
hf_cache_dir: ${paths.huggingface_cache}
use_geoclip_projector: false
loss_fn:
_target_: src.models.components.loss_fns.clip_loss.ClipLoss
temperature: 0.07
trainable_modules: [loss_fn.log_temp]

data:
dataset:
modalities:
coords:
use_target_data: false
use_aux_data: "all"
dtype: float32
caption_builder:
_target_: src.data.butterfly_caption_builder.ButterflyCaptionBuilder
templates_fname: v5.json
concepts_fname: v4.json
data_dir: ${paths.data_dir}/s2bms
seed: ${seed}
n_captions_for_validation: 50
saved_split_file_name: "s2bms_unlabelled_union_val_test.pth"
batch_size: 32

tags: ["alignment", "geoclip_coords", "geoclip_text"]

seed: 12345
Expand All @@ -19,9 +54,6 @@ trainer:
min_epochs: 10
max_epochs: 100

data:
batch_size: 64

logger:
wandb:
tags: ${tags}
Expand Down
95 changes: 95 additions & 0 deletions configs/experiment/alignment_template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# @package _global_

# to execute this experiment run:
# python train.py experiment=example

# TODO: description

defaults:
- override /model: s2bms_alignment
- override /data: s2bms_prediction
- override /metrics: s2bms_alignment

tags:
- alignment
- aef
- aef_${str:${data.dataset.modalities.tessera_avr.size}} #TODO modality
# - aef_${str:${data.dataset.modalities.tessera.size}} #TODO modality
- ${str:${seed}}

# (unlab_)(geo_encoder)_(eo_mod)_(geo_adapter)_(text_encoder)_(text_adapter)_(batch_size) ,_ generated by_default plus extra
#experiment_name: unlab_avr_aef_128_mlp_cliptext # TODO: to fully over-write the name
#experiment_name_extra: # TODO any extra unique features about the experiment

projects: s2bms_alignment

model:
geo_encoder:
_target_: src.models.components.geo_encoders.identity_encoder.IdentityEncoder
geo_data_name: aef_avr
geo_adapter:
_target_: src.models.components.projectors_adapters.mlp_projector.MLPProjector
nn_layers: 2
hidden_dim: 512
# output_dim: 1280 # TODO for LLM
output_dim: 768 # TODO for CLIP text encoder
# TODO choose the text encoder
text_encoder:
_target_: src.models.components.text_encoders.clip_text_encoder.ClipTextEncoder
# _target_: src.models.components.text_encoders.llm2clip_text_encoder.LLM2CLIPTextEncoder
hf_cache_dir: ${paths.huggingface_cache}
use_geoclip_projector: false # TODO for CLIP encoder
# TODO choose the loss fn
loss_fn:
_target_: src.models.components.loss_fns.soft_contrastive_loss.SoftContrastiveLoss
# _target_: src.models.components.loss_fns.clip_loss.ClipLoss
temperature: 0.07
stats_file: ${paths.data_dir}/s2bms/aux_stats/unlabelled.json # TODO choose accordingly (for soft loss only)
# stats_file: ${paths.data_dir}/s2bms/aux_stats/labelled.json
trainable_modules: [loss_fn.log_temp]

data:
dataset:
modalities: # TODO
aef_avr:
path: ${paths.data_dir}/s2bms/eo/avr_aef_128_unlabelled.csv
enable_nans: true
use_target_data: false
use_aux_data: "all"
use_unlabelled_data: true # TODO
dtype: float32
caption_builder:
_target_: src.data.butterfly_caption_builder.ButterflyCaptionBuilder
templates_fname: v5.json # TODO
concepts_fname: v4.json # TODO
data_dir: ${paths.data_dir}/s2bms
seed: ${seed}
n_captions_for_validation: 50
saved_split_file_name: "s2bms_unlabelled_union_val_test.pth" # TODO
# saved_split_file_name: "s2bms_union_val_test.pth"
num_workers: 14
persistent_workers: true
pin_memory: true
prefetch_factor: 6
batch_size: 256 # TODO

logger:
wandb:
tags: ${tags}
group: "alignment"
project: "s2bms_alignment"
aim:
experiment: "alignment"

trainer.num_sanity_val_steps: 0

hydra:
mode: MULTIRUN
sweeper:
params:
seed: 12345 #, 404, 654
+data.dataset.modalities.aef_avr.size: 128, 256 # For avr (from csv file)
# +data.dataset.modalities.aef.size: 128, 256 # for tiles
++model.loss_fn.sigma: 0.25 #, 0.5, 1
++data.caption_builder.return_aux_ids: true #, false
++callbacks.early_stopping.patience: 20
82 changes: 82 additions & 0 deletions configs/experiment/s2bms_align_avr_aef_clip_text.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# @package _global_

# to execute this experiment run:
# python train.py experiment=example

# Avr aef 128 + geoclip

defaults:
# - /callbacks@callbacks.batch_size_finder: batch_size_finder
- override /model: s2bms_alignment
- override /data: s2bms_prediction
- override /metrics: s2bms_alignment

tags:
- alignment
- aef
- aef_128
- ${str:${seed}}

experiment_name: lab_avr_aef_128_mlp_cliptext
projects: s2bms_alignment

model:
geo_encoder:
_target_: src.models.components.geo_encoders.identity_encoder.IdentityEncoder
geo_data_name: aef_avr
geo_adapter:
_target_: src.models.components.projectors_adapters.mlp_projector.MLPProjector
nn_layers: 2
hidden_dim: 512
output_dim: 768
text_encoder:
_target_: src.models.components.text_encoders.clip_text_encoder.ClipTextEncoder
hf_cache_dir: ${paths.huggingface_cache}
use_geoclip_projector: false
loss_fn:
_target_: src.models.components.loss_fns.soft_contrastive_loss.SoftContrastiveLoss
temperature: 0.07
trainable_modules: [loss_fn.log_temp]

data:
dataset:
modalities:
aef_avr:
path: ${paths.data_dir}/s2bms/eo/avr_aef_128.csv
enable_nans: true
use_target_data: false
use_aux_data: "all"
dtype: float32
caption_builder:
_target_: src.data.butterfly_caption_builder.ButterflyCaptionBuilder
templates_fname: v5.json
concepts_fname: v4.json
data_dir: ${paths.data_dir}/s2bms
seed: ${seed}
n_captions_for_validation: 50
stats_file: ${paths.data_dir}/s2bms/aux_stats/unlabelled.json

num_workers: 14
persistent_workers: true
pin_memory: true
prefetch_factor: 6
batch_size: 256
saved_split_file_name: "s2bms_aef_coords.pth"
# data.saved_split_file_name: "split_indices_s2bms+s2bms-unlabelled-20260602_2026-06-02-0918.pth"

logger:
wandb:
tags: ${tags}
group: "alignment"
project: "s2bms_alignment"
aim:
experiment: "alignment"

hydra:
mode: MULTIRUN
sweeper:
params:
seed: 12345 #, 404, 654
++model.loss_fn.sigma: 0.25, 0.5, 1
++data.caption_builder.return_aux_ids: true, false
++callbacks.early_stopping.patience: 20
81 changes: 81 additions & 0 deletions configs/experiment/s2bms_align_avr_aef_clip_text_1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# @package _global_

# to execute this experiment run:
# python train.py experiment=example

# Avr aef 128 + geoclip

defaults:
# - /callbacks@callbacks.batch_size_finder: batch_size_finder
- override /model: s2bms_alignment
- override /data: s2bms_prediction
- override /metrics: s2bms_alignment

tags:
- alignment
- aef
- aef_128
- ${str:${seed}}

experiment_name: lab_avr_aef_128_mlp_cliptext
projects: s2bms_alignment

model:
geo_encoder:
_target_: src.models.components.geo_encoders.identity_encoder.IdentityEncoder
geo_data_name: aef_avr
geo_adapter:
_target_: src.models.components.projectors_adapters.mlp_projector.MLPProjector
nn_layers: 2
hidden_dim: 512
output_dim: 768
text_encoder:
_target_: src.models.components.text_encoders.clip_text_encoder.ClipTextEncoder
hf_cache_dir: ${paths.huggingface_cache}
use_geoclip_projector: false
loss_fn:
_target_: src.models.components.loss_fns.clip_loss.ClipLoss
temperature: 0.07
trainable_modules: [loss_fn.log_temp]

data:
dataset:
modalities:
aef_avr:
path: ${paths.data_dir}/s2bms/eo/avr_aef_128.csv
enable_nans: true
use_target_data: false
use_aux_data: "all"
dtype: float32
caption_builder:
_target_: src.data.butterfly_caption_builder.ButterflyCaptionBuilder
templates_fname: v5.json
concepts_fname: v4.json
data_dir: ${paths.data_dir}/s2bms
seed: ${seed}
n_captions_for_validation: 50
stats_file: ${paths.data_dir}/s2bms/aux_stats/unlabelled.json

num_workers: 14
persistent_workers: true
pin_memory: true
prefetch_factor: 6
batch_size: 256
saved_split_file_name: "s2bms_aef_coords.pth"
# data.saved_split_file_name: "split_indices_s2bms+s2bms-unlabelled-20260602_2026-06-02-0918.pth"

logger:
wandb:
tags: ${tags}
group: "alignment"
project: "s2bms_alignment"
aim:
experiment: "alignment"

hydra:
mode: MULTIRUN
sweeper:
params:
seed: 12345 #, 404, 654
++data.caption_builder.return_aux_ids: false
++callbacks.early_stopping.patience: 20
Loading
Loading