From cf9f9cb4ee0ebd6a633c525a792629c12ce44fd2 Mon Sep 17 00:00:00 2001 From: GabrieleTi Date: Mon, 31 Aug 2026 14:58:32 +0200 Subject: [PATCH 1/6] add satbird datasplit cleaning --- ...9-GT-aef-tessera-datasplit-filtering.ipynb | 128 +++++++++++++++++- 1 file changed, 127 insertions(+), 1 deletion(-) diff --git a/notebooks/09-GT-aef-tessera-datasplit-filtering.ipynb b/notebooks/09-GT-aef-tessera-datasplit-filtering.ipynb index 6c7ffcfd..d373af57 100644 --- a/notebooks/09-GT-aef-tessera-datasplit-filtering.ipynb +++ b/notebooks/09-GT-aef-tessera-datasplit-filtering.ipynb @@ -316,9 +316,135 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "18", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "19", + "metadata": {}, + "source": [ + "# SatBIRD" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "20", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"data/satbird-USA-summer/eo/aef-satbird-usa-summer_average-128.csv\")\n", + "list_128 = list(df.name_loc)\n", + "len(list_128)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "21", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"data/satbird-USA-summer/eo/aef-satbird-usa-summer_average-256.csv\")\n", + "list_256 = list(df.name_loc)\n", + "len(list_256)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22", + "metadata": {}, + "outputs": [], + "source": [ + "complete = set(list_128) & set(list_256)\n", + "len(complete)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23", + "metadata": {}, + "outputs": [], + "source": [ + "# Load in original datasplit file\n", + "pth = \"data/satbird-USA-summer/splits/split_indices_satbird-USA-summer.pth\"\n", + "split_indices = torch.load(pth, weights_only=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "24", + "metadata": {}, + "outputs": [], + "source": [ + "# Print data split sizes\n", + "s = 0\n", + "print(\"Before cleaning:\")\n", + "for k, v in split_indices.items():\n", + " if not k == \"clusters\":\n", + " print(k, len(v))\n", + " s += len(v)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25", + "metadata": {}, + "outputs": [], + "source": [ + "holdout_pool = set(split_indices[\"val_indices\"]) | set(split_indices[\"test_indices\"])\n", + "clean_holdout = sorted(holdout_pool & complete)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "26", + "metadata": {}, + "outputs": [], + "source": [ + "complete = set(list_128) & set(list_256)\n", + "\n", + "split_indices[\"val_indices\"] = split_indices[\"val_indices\"][\n", + " split_indices[\"val_indices\"].isin(complete)\n", + "]\n", + "split_indices[\"test_indices\"] = split_indices[\"test_indices\"][\n", + " split_indices[\"test_indices\"].isin(complete)\n", + "]\n", + "\n", + "print(\"After cleaning:\")\n", + "for k, v in split_indices.items():\n", + " if k != \"clusters\":\n", + " print(k, len(v))\n", + "\n", + "\n", + "if os.path.exists(\"data/satbird-USA-summer/splits/satbird-USA-summer_aef_union_val_test.pth\"):\n", + " print(\"Already saved\")\n", + "else:\n", + " torch.save(\n", + " split_indices, \"data/satbird-USA-summer/splits/satbird-USA-summer_aef_union_val_test.pth\"\n", + " )" + ] } ], - "metadata": {}, + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + } + }, "nbformat": 4, "nbformat_minor": 5 } From f368047d540a4f82a2abe5d459df115da5c1fbf5 Mon Sep 17 00:00:00 2001 From: GabrieleTi Date: Mon, 31 Aug 2026 14:59:59 +0200 Subject: [PATCH 2/6] add satbird data config --- configs/data/satbird-usa.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 configs/data/satbird-usa.yaml diff --git a/configs/data/satbird-usa.yaml b/configs/data/satbird-usa.yaml new file mode 100644 index 00000000..7adb5ed3 --- /dev/null +++ b/configs/data/satbird-usa.yaml @@ -0,0 +1,20 @@ +_target_: src.data.base_datamodule.BaseDataModule + +dataset: + _target_: src.data.satbird_dataset.SatBirdDataset + + data_dir: ${paths.data_dir} + modalities: + use_target_data: true + use_aux_data: none + seed: ${seed} + cache_dir: ${paths.cache_dir} + study_site: USA-summer + +batch_size: 16 +num_workers: 1 +pin_memory: false +split_mode: "from_file" +save_split: false +saved_split_file_name: "split_indices_satbird-USA-summer.pth" +seed: ${seed} From 8faafeedf81b184185b8a411aeedfd6543bf85a0 Mon Sep 17 00:00:00 2001 From: GabrieleTi Date: Mon, 31 Aug 2026 15:00:20 +0200 Subject: [PATCH 3/6] implement aef avr embeds for satbird --- src/data/satbird_dataset.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/data/satbird_dataset.py b/src/data/satbird_dataset.py index 880dc8db..6370334b 100644 --- a/src/data/satbird_dataset.py +++ b/src/data/satbird_dataset.py @@ -47,7 +47,7 @@ def __init__( dataset_name=f"satbird-{study_site}", seed=seed, cache_dir=cache_dir, - implemented_mod={"coords", "s2", "s2rgb", "tessera"}, + implemented_mod={"coords", "s2", "s2rgb", "aef_avr"}, mock=mock, dtype=dtype, use_features=use_features, @@ -59,7 +59,6 @@ def _setup(self): """Setups the whole dataset, makes available data of requested modalities.""" # Set up each requested modality - for mod in self.modalities.keys(): if mod == "coords" and len(self.modalities.keys()) == 1: return @@ -67,6 +66,8 @@ def _setup(self): self.setup_satbird() elif mod == "tessera": self.setup_tessera() + elif mod == "aef_avr": + self.setup_embeds(mod) def setup_satbird(self): """Prepares (downloads, renames and moves) data for each requested modality.""" @@ -106,6 +107,8 @@ def __getitem__(self, idx): formatted_row["eo"][modality] = s2 elif modality == "tessera": formatted_row["eo"][modality] = self.load_tessera(row["tessera_path"]) + elif modality == "aef_avr": + formatted_row["eo"][modality] = self.aef_avr[row["name_loc"]] if self.use_target_data: formatted_row["target"] = torch.tensor( @@ -117,15 +120,17 @@ def __getitem__(self, idx): for aux_cat, vals in self.use_aux_data.items(): if aux_cat == "aux": formatted_row["aux"][aux_cat] = torch.tensor( - [row[v] for v in vals], dtype=torch.float32 + [row[v] for v in vals], dtype=self.dtype ) else: formatted_row["aux"][aux_cat] = [row[v] for v in vals] if self.use_features and self.feat_names: - formatted_row["eo"]["tabular"] = torch.tensor( - [row[k] for k in self.feat_names], dtype=torch.float32 - ) + raw = torch.tensor([row[k] for k in self.feat_names], dtype=torch.float32) + if self._feat_mean is not None and self._feat_std is not None: + formatted_row["eo"]["tabular"] = (raw - self._feat_mean) / self._feat_std + else: + formatted_row["eo"]["tabular"] = raw if self.return_name_loc: formatted_row["name_loc"] = row["name_loc"] From 4521c719a374e1576516a204353290f70b5aa209 Mon Sep 17 00:00:00 2001 From: GabrieleTi Date: Mon, 31 Aug 2026 15:00:31 +0200 Subject: [PATCH 4/6] add satbird predictive metrics --- configs/metrics/satbird_predictive.yaml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 configs/metrics/satbird_predictive.yaml diff --git a/configs/metrics/satbird_predictive.yaml b/configs/metrics/satbird_predictive.yaml new file mode 100644 index 00000000..de508814 --- /dev/null +++ b/configs/metrics/satbird_predictive.yaml @@ -0,0 +1,7 @@ +_target_: src.models.components.metrics.metrics_wrapper.MetricsWrapper + +metrics: + - _target_: src.models.components.loss_fns.mse_loss.MSELoss + - _target_: src.models.components.loss_fns.mae_loss.MAELoss + - _target_: src.models.components.metrics.top_k_accuracy.TopKAccuracy + k_list: [10, 30] From 1a8484e26c2223594e8c3b5ae318ae5da915ada9 Mon Sep 17 00:00:00 2001 From: GabrieleTi Date: Mon, 31 Aug 2026 15:01:04 +0200 Subject: [PATCH 5/6] satbird snelius scheduling script --- scripts/satbird_snellius.sh | 109 ++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 scripts/satbird_snellius.sh diff --git a/scripts/satbird_snellius.sh b/scripts/satbird_snellius.sh new file mode 100644 index 00000000..c9afe974 --- /dev/null +++ b/scripts/satbird_snellius.sh @@ -0,0 +1,109 @@ +#!/bin/bash +##SBATCH --cpus-per-task=16 +#SBATCH --partition=gpu_a100 +##SBATCH --partition=gpu_mig +#SBATCH --gpus=1 +#SBATCH --job-name=aether +#SBATCH --time=6:00:00 +#SBATCH --output=/gpfs/home2/gtijunaityte/aether/logs/%j_out.out +##SBATCH --error=/gpfs/home2/gtijunaityte/aether/logs/%j_err.err +#SBATCH --ntasks-per-node=1 +#SBATCH --constraint=scratch-node + +echo "[runner.sh] Job $SLURM_JOB_ID starting on $(hostname) at $(date)" +echo "[runner.sh] Job $SLURM_JOB_ID starting on $(hostname) at $(date)" + +# Define the cleanup/sync-back function +cleanup_and_sync() { + if [ "$FLAG" = true ]; then + echo "========= TRAP TRIGGERED: Syncing results back to home directory =========" + rsync -avP --ignore-existing ./logs/ /gpfs/home2/gtijunaityte/aether/logs/ + rsync -avP --ignore-existing ./data/checkpoints/ /gpfs/home2/gtijunaityte/aether/data/checkpoints/ + + # rm -r logs/* + # rm -r src/* + fi +} +trap cleanup_and_sync EXIT INT TERM + +source .env +FLAG=false +if [ "$PROJECT_ROOT" != "." ]; then + FLAG=true + echo "Ensuring project root directory exists: $PROJECT_ROOT" + + # update project files + EXCLUDE_DATA=("tessera" "tessera_v1.0" "s2" "aef") + RSYNC_EXCLUDES_DATA=() + for item in "${EXCLUDE_DATA[@]}"; do + RSYNC_EXCLUDES_DATA+=(--exclude="eo/$item") + done + + echo "Updating project files, excluding specific eo/ subfolders:" + echo "${RSYNC_EXCLUDES_DATA[@]}" + rsync -avP \ + "${RSYNC_EXCLUDES_DATA[@]}" \ + --exclude '.venv' \ + --exclude 'docs' \ + --exclude 'data/checkpoints' \ + --exclude 'uv.lock' \ + --exclude 'logs' \ + --exclude 'data/cache/' \ + --exclude '.github' \ + --exclude 'notebooks' \ + ./ "$PROJECT_ROOT/" + + # sync data + EXCLUDE_SUBFOLDERS=("${EXCLUDE_DATA[@]}") + RSYNC_EXCLUDES=() + for item in "${EXCLUDE_SUBFOLDERS[@]}"; do + RSYNC_EXCLUDES+=(--exclude="eo/$item") + done + echo "Syncing data directory and ignoring:" + echo "${RSYNC_EXCLUDES[@]}" + rsync -avP --ignore-existing "${RSYNC_EXCLUDES[@]}" "data/satbird-USA-summer/" "$PROJECT_ROOT/data/satbird-USA-summer/" + rsync -avP --ignore-existing data/cache/ "$PROJECT_ROOT/data/cache/" + + # Move to the project root for execution + cd "$PROJECT_ROOT" + echo "Changed working directory to: $(pwd)" +fi + +# Create venv on node-local $TMPDIR; keep code + data on scratch (PROJECT_ROOT). +ml 2025 +export UV_PROJECT_ENVIRONMENT="$TMPDIR/.venv" +export UV_CACHE_DIR="${UV_CACHE_DIR:-$HOME/.cache/uv}" + +uv sync --directory "$PROJECT_ROOT" +source "$UV_PROJECT_ENVIRONMENT/bin/activate" +uv pip install -e "$PROJECT_ROOT" + +cd "$PROJECT_ROOT" + +# Runs +export PYTHONUNBUFFERED=1 +export OMP_NUM_THREADS=1 +export MKL_NUM_THREADS=1 +export OPENBLAS_NUM_THREADS=1 + +echo "Starting model training..." + + +# AVR AEF +#srun python -u src/train.py experiment=s2bms_prediction/avr_aef_128_256_deeper_mlp +srun python -u src/train.py experiment=s2bms_prediction/avr_aef_128_256_lin +srun python -u src/train.py experiment=s2bms_prediction/avr_aef_128_256_mlp + +# GEOCLIP +srun python -u src/train.py experiment=s2bms_prediction/geoclip_deeper_mlp +srun python -u src/train.py experiment=s2bms_prediction/geoclip_lin +srun python -u src/train.py experiment=s2bms_prediction/geoclip_mlp + +# SATCLIP +srun python -u src/train.py experiment=s2bms_prediction/satclip_deeper_mlp +srun python -u src/train.py experiment=s2bms_prediction/satclip_lin +srun python -u src/train.py experiment=s2bms_prediction/satclip_mlp + +# BASELINES +#srun python -u src/train.py experiment=s2bms_prediction/baselines/tabular_linear +#srun python -u src/train.py experiment=s2bms_prediction/baselines/tabular_mlp From 281f1b0e060bef6a2f19e9d84e448c1400d30e32 Mon Sep 17 00:00:00 2001 From: GabrieleTi Date: Mon, 31 Aug 2026 15:02:15 +0200 Subject: [PATCH 6/6] add satbird pred config files --- .../avr_aef_128_256_deeper_mlp.yaml | 58 +++++++++++++++++++ .../avr_aef_128_256_lin.yaml | 57 ++++++++++++++++++ .../avr_aef_128_256_mlp.yaml | 57 ++++++++++++++++++ .../geoclip_deeper_mlp.yaml | 54 +++++++++++++++++ .../satbird_sum_prediction/geoclip_lin.yaml | 53 +++++++++++++++++ .../satbird_sum_prediction/geoclip_mlp.yaml | 53 +++++++++++++++++ .../satclip_deeper_mlp.yaml | 56 ++++++++++++++++++ .../satbird_sum_prediction/satclip_lin.yaml | 55 ++++++++++++++++++ .../satbird_sum_prediction/satclip_mlp.yaml | 55 ++++++++++++++++++ 9 files changed, 498 insertions(+) create mode 100644 configs/experiment/satbird_sum_prediction/avr_aef_128_256_deeper_mlp.yaml create mode 100644 configs/experiment/satbird_sum_prediction/avr_aef_128_256_lin.yaml create mode 100644 configs/experiment/satbird_sum_prediction/avr_aef_128_256_mlp.yaml create mode 100644 configs/experiment/satbird_sum_prediction/geoclip_deeper_mlp.yaml create mode 100644 configs/experiment/satbird_sum_prediction/geoclip_lin.yaml create mode 100644 configs/experiment/satbird_sum_prediction/geoclip_mlp.yaml create mode 100644 configs/experiment/satbird_sum_prediction/satclip_deeper_mlp.yaml create mode 100644 configs/experiment/satbird_sum_prediction/satclip_lin.yaml create mode 100644 configs/experiment/satbird_sum_prediction/satclip_mlp.yaml diff --git a/configs/experiment/satbird_sum_prediction/avr_aef_128_256_deeper_mlp.yaml b/configs/experiment/satbird_sum_prediction/avr_aef_128_256_deeper_mlp.yaml new file mode 100644 index 00000000..d6cf8f0c --- /dev/null +++ b/configs/experiment/satbird_sum_prediction/avr_aef_128_256_deeper_mlp.yaml @@ -0,0 +1,58 @@ +# @package _global_ + +# to execute this experiment run: +# python train.py experiment=example + +# AEF with average encoder and MLP prediction head, for tile sizes 128 and 256, each with 3 random seeds + +defaults: + - override /model: s2bms_prediction + - override /data: satbird-usa + - override /metrics: satbird_predictive + +tags: + - prediction + - aef + - aef_${str:${data.dataset.modalities.aef_avr.size}} + - ${str:${seed}} + +experiment_name: avr_aef_${str:${data.dataset.modalities.aef_avr.size}}_deeper_mlp + +model: + geo_encoder: + _target_: src.models.components.geo_encoders.identity_encoder.IdentityEncoder + geo_data_name: aef_avr + trainable_modules: [prediction_head] + prediction_head: + _target_: src.models.components.pred_heads.mlp_pred_head.MLPPredictionHead + nn_layers: 3 + +data: + dataset: + modalities: + aef_avr: + path: ${paths.data_dir}/satbird-USA-summer/eo/aef-satbird-usa-summer_average-${data.dataset.modalities.aef_avr.size}.csv + enable_nans: true + use_target_data: true + use_aux_data: false + caption_builder: + pin_memory: true + num_workers: 14 + batch_size: 128 + persistent_workers: true + saved_split_file_name: "satbird-USA-summer_aef_union_val_test.pth" + +logger: + wandb: + tags: ${tags} + group: "predictive" + project: "satbird-usa-summer_prediction" + aim: + experiment: "predictive" + +hydra: + mode: MULTIRUN + sweeper: + params: + seed: 12345, 404, 654 + ++data.dataset.modalities.aef_avr.size: 128, 256 diff --git a/configs/experiment/satbird_sum_prediction/avr_aef_128_256_lin.yaml b/configs/experiment/satbird_sum_prediction/avr_aef_128_256_lin.yaml new file mode 100644 index 00000000..38b49989 --- /dev/null +++ b/configs/experiment/satbird_sum_prediction/avr_aef_128_256_lin.yaml @@ -0,0 +1,57 @@ +# @package _global_ + +# to execute this experiment run: +# python train.py experiment=example + +# AEF with average encoder and linear prediction head, for tile sizes 128 and 256, each with 3 random seeds + +defaults: + - override /model: s2bms_prediction + - override /data: satbird-usa + - override /metrics: satbird_predictive + +tags: + - prediction + - aef + - aef_${str:${data.dataset.modalities.aef_avr.size}} + - ${str:${seed}} + +experiment_name: avr_aef_${str:${data.dataset.modalities.aef_avr.size}}_linear + +model: + geo_encoder: + _target_: src.models.components.geo_encoders.identity_encoder.IdentityEncoder + geo_data_name: aef_avr + trainable_modules: [prediction_head] + prediction_head: + _target_: src.models.components.pred_heads.linear_pred_head.LinearPredictionHead + +data: + dataset: + modalities: + aef_avr: + path: ${paths.data_dir}/satbird-USA-summer/eo/aef-satbird-usa-summer_average-${data.dataset.modalities.aef_avr.size}.csv + enable_nans: true + use_target_data: true + use_aux_data: false + caption_builder: + pin_memory: true + num_workers: 14 + batch_size: 128 + persistent_workers: true + saved_split_file_name: "satbird-USA-summer_aef_union_val_test.pth" + +logger: + wandb: + tags: ${tags} + group: "predictive" + project: "satbird-usa-summer_prediction" + aim: + experiment: "predictive" + +hydra: + mode: MULTIRUN + sweeper: + params: + seed: 12345, 404, 654 + ++data.dataset.modalities.aef_avr.size: 128, 256 diff --git a/configs/experiment/satbird_sum_prediction/avr_aef_128_256_mlp.yaml b/configs/experiment/satbird_sum_prediction/avr_aef_128_256_mlp.yaml new file mode 100644 index 00000000..bd732527 --- /dev/null +++ b/configs/experiment/satbird_sum_prediction/avr_aef_128_256_mlp.yaml @@ -0,0 +1,57 @@ +# @package _global_ + +# to execute this experiment run: +# python train.py experiment=example + +# AEF with average encoder and MLP prediction head, for tile sizes 128 and 256, each with 3 random seeds + +defaults: + - override /model: s2bms_prediction + - override /data: satbird-usa + - override /metrics: satbird_predictive + +tags: + - prediction + - aef + - aef_${str:${data.dataset.modalities.aef_avr.size}} + - ${str:${seed}} + +experiment_name: avr_aef_${str:${data.dataset.modalities.aef_avr.size}}_mlp + +model: + geo_encoder: + _target_: src.models.components.geo_encoders.identity_encoder.IdentityEncoder + geo_data_name: aef_avr + trainable_modules: [prediction_head] + prediction_head: + _target_: src.models.components.pred_heads.mlp_pred_head.MLPPredictionHead + +data: + dataset: + modalities: + aef_avr: + path: ${paths.data_dir}/satbird-USA-summer/eo/aef-satbird-usa-summer_average-${data.dataset.modalities.aef_avr.size}.csv + enable_nans: true + use_target_data: true + use_aux_data: false + caption_builder: + pin_memory: true + num_workers: 14 + batch_size: 128 + persistent_workers: true + saved_split_file_name: "satbird-USA-summer_aef_union_val_test.pth" + +logger: + wandb: + tags: ${tags} + group: "predictive" + project: "satbird-usa-summer_prediction" + aim: + experiment: "predictive" + +hydra: + mode: MULTIRUN + sweeper: + params: + seed: 12345, 404, 654 + ++data.dataset.modalities.aef_avr.size: 128, 256 diff --git a/configs/experiment/satbird_sum_prediction/geoclip_deeper_mlp.yaml b/configs/experiment/satbird_sum_prediction/geoclip_deeper_mlp.yaml new file mode 100644 index 00000000..04ebb119 --- /dev/null +++ b/configs/experiment/satbird_sum_prediction/geoclip_deeper_mlp.yaml @@ -0,0 +1,54 @@ +# @package _global_ + +# to execute this experiment run: +# python train.py experiment=example + +# Geoclip with MLP prediction head, with 3 random seeds + +defaults: + - override /model: s2bms_prediction + - override /data: satbird-usa + - override /metrics: satbird_predictive + +tags: + - prediction + - geoclip + - ${str:${seed}} + +experiment_name: geoclip_deeper_mlp + +model: + geo_encoder: + _target_: src.models.components.geo_encoders.geoclip.GeoClipCoordinateEncoder + geo_data_name: coords + trainable_modules: [prediction_head] + prediction_head: + _target_: src.models.components.pred_heads.mlp_pred_head.MLPPredictionHead + nn_layers: 3 + +data: + dataset: + modalities: + coords: + use_target_data: true + use_aux_data: false + caption_builder: + pin_memory: true + num_workers: 14 + batch_size: 128 + persistent_workers: true + saved_split_file_name: "satbird-USA-summer_aef_union_val_test.pth" + +logger: + wandb: + tags: ${tags} + group: "predictive" + project: "satbird-usa-summer_prediction" + aim: + experiment: "predictive" + +hydra: + mode: MULTIRUN + sweeper: + params: + seed: 12345, 404, 654 diff --git a/configs/experiment/satbird_sum_prediction/geoclip_lin.yaml b/configs/experiment/satbird_sum_prediction/geoclip_lin.yaml new file mode 100644 index 00000000..63edf4ee --- /dev/null +++ b/configs/experiment/satbird_sum_prediction/geoclip_lin.yaml @@ -0,0 +1,53 @@ +# @package _global_ + +# to execute this experiment run: +# python train.py experiment=example + +# Geoclip with linear prediction head, with 3 random seeds + +defaults: + - override /model: s2bms_prediction + - override /data: satbird-usa + - override /metrics: satbird_predictive + +tags: + - prediction + - geoclip + - ${str:${seed}} + +experiment_name: geoclip_linear + +model: + geo_encoder: + _target_: src.models.components.geo_encoders.geoclip.GeoClipCoordinateEncoder + geo_data_name: coords + trainable_modules: [prediction_head] + prediction_head: + _target_: src.models.components.pred_heads.linear_pred_head.LinearPredictionHead + +data: + dataset: + modalities: + coords: + use_target_data: true + use_aux_data: false + caption_builder: + pin_memory: true + num_workers: 14 + batch_size: 128 + persistent_workers: true + saved_split_file_name: "satbird-USA-summer_aef_union_val_test.pth" + +logger: + wandb: + tags: ${tags} + group: "predictive" + project: "satbird-usa-summer_prediction" + aim: + experiment: "predictive" + +hydra: + mode: MULTIRUN + sweeper: + params: + seed: 12345, 404, 654 diff --git a/configs/experiment/satbird_sum_prediction/geoclip_mlp.yaml b/configs/experiment/satbird_sum_prediction/geoclip_mlp.yaml new file mode 100644 index 00000000..45203628 --- /dev/null +++ b/configs/experiment/satbird_sum_prediction/geoclip_mlp.yaml @@ -0,0 +1,53 @@ +# @package _global_ + +# to execute this experiment run: +# python train.py experiment=example + +# Geoclip with MLP prediction head, with 3 random seeds + +defaults: + - override /model: s2bms_prediction + - override /data: satbird-usa + - override /metrics: satbird_predictive + +tags: + - prediction + - geoclip + - ${str:${seed}} + +experiment_name: geoclip_mlp + +model: + geo_encoder: + _target_: src.models.components.geo_encoders.geoclip.GeoClipCoordinateEncoder + geo_data_name: coords + trainable_modules: [prediction_head] + prediction_head: + _target_: src.models.components.pred_heads.mlp_pred_head.MLPPredictionHead + +data: + dataset: + modalities: + coords: + use_target_data: true + use_aux_data: false + caption_builder: + pin_memory: true + num_workers: 14 + batch_size: 128 + persistent_workers: true + saved_split_file_name: "satbird-USA-summer_aef_union_val_test.pth" + +logger: + wandb: + tags: ${tags} + group: "predictive" + project: "satbird-usa-summer_prediction" + aim: + experiment: "predictive" + +hydra: + mode: MULTIRUN + sweeper: + params: + seed: 12345, 404, 654 diff --git a/configs/experiment/satbird_sum_prediction/satclip_deeper_mlp.yaml b/configs/experiment/satbird_sum_prediction/satclip_deeper_mlp.yaml new file mode 100644 index 00000000..31f2b553 --- /dev/null +++ b/configs/experiment/satbird_sum_prediction/satclip_deeper_mlp.yaml @@ -0,0 +1,56 @@ +# @package _global_ + +# to execute this experiment run: +# python train.py experiment=example + +# Satclip and MLP prediction head, with 3 random seeds + +defaults: + - override /model: s2bms_prediction + - override /data: satbird-usa + - override /metrics: satbird_predictive + +tags: + - prediction + - satclip + - ${str:${seed}} + +experiment_name: satclip_deeper_mlp + +model: + geo_encoder: + _target_: src.models.components.geo_encoders.satclip.SatClipCoordinateEncoder + geo_data_name: coords + hf_cache_dir: ${paths.huggingface_cache} + trainable_modules: [prediction_head] + prediction_head: + _target_: src.models.components.pred_heads.mlp_pred_head.MLPPredictionHead + nn_layers: 3 + +data: + dataset: + modalities: + coords: + use_target_data: true + use_aux_data: false + dtype: float64 + caption_builder: + pin_memory: true + num_workers: 14 + batch_size: 128 + persistent_workers: true + saved_split_file_name: "satbird-USA-summer_aef_union_val_test.pth" + +logger: + wandb: + tags: ${tags} + group: "predictive" + project: "satbird-usa-summer_prediction" + aim: + experiment: "predictive" + +hydra: + mode: MULTIRUN + sweeper: + params: + seed: 12345, 404, 654 diff --git a/configs/experiment/satbird_sum_prediction/satclip_lin.yaml b/configs/experiment/satbird_sum_prediction/satclip_lin.yaml new file mode 100644 index 00000000..d51c9a3c --- /dev/null +++ b/configs/experiment/satbird_sum_prediction/satclip_lin.yaml @@ -0,0 +1,55 @@ +# @package _global_ + +# to execute this experiment run: +# python train.py experiment=example + +# Satclip and linear prediction head, with 3 random seeds + +defaults: + - override /model: s2bms_prediction + - override /data: satbird-usa + - override /metrics: satbird_predictive + +tags: + - prediction + - satclip + - ${str:${seed}} + +experiment_name: satclip_linear + +model: + geo_encoder: + _target_: src.models.components.geo_encoders.satclip.SatClipCoordinateEncoder + geo_data_name: coords + hf_cache_dir: ${paths.huggingface_cache} + trainable_modules: [prediction_head] + prediction_head: + _target_: src.models.components.pred_heads.linear_pred_head.LinearPredictionHead + +data: + dataset: + modalities: + coords: + use_target_data: true + use_aux_data: false + dtype: float64 + caption_builder: + pin_memory: true + num_workers: 14 + batch_size: 128 + persistent_workers: true + saved_split_file_name: "satbird-USA-summer_aef_union_val_test.pth" + +logger: + wandb: + tags: ${tags} + group: "predictive" + project: "satbird-usa-summer_prediction" + aim: + experiment: "predictive" + +hydra: + mode: MULTIRUN + sweeper: + params: + seed: 12345, 404, 654 diff --git a/configs/experiment/satbird_sum_prediction/satclip_mlp.yaml b/configs/experiment/satbird_sum_prediction/satclip_mlp.yaml new file mode 100644 index 00000000..990690f6 --- /dev/null +++ b/configs/experiment/satbird_sum_prediction/satclip_mlp.yaml @@ -0,0 +1,55 @@ +# @package _global_ + +# to execute this experiment run: +# python train.py experiment=example + +# Satclip and MLP prediction head, with 3 random seeds + +defaults: + - override /model: s2bms_prediction + - override /data: satbird-usa + - override /metrics: satbird_predictive + +tags: + - prediction + - satclip + - ${str:${seed}} + +experiment_name: satclip_mlp + +model: + geo_encoder: + _target_: src.models.components.geo_encoders.satclip.SatClipCoordinateEncoder + geo_data_name: coords + hf_cache_dir: ${paths.huggingface_cache} + trainable_modules: [prediction_head] + prediction_head: + _target_: src.models.components.pred_heads.mlp_pred_head.MLPPredictionHead + +data: + dataset: + modalities: + coords: + use_target_data: true + use_aux_data: false + dtype: float64 + caption_builder: + pin_memory: true + num_workers: 14 + batch_size: 128 + persistent_workers: true + saved_split_file_name: "satbird-USA-summer_aef_union_val_test.pth" + +logger: + wandb: + tags: ${tags} + group: "predictive" + project: "satbird-usa-summer_prediction" + aim: + experiment: "predictive" + +hydra: + mode: MULTIRUN + sweeper: + params: + seed: 12345, 404, 654