#!/bin/bash # Submit all T1 scene recognition baselines + SyncFuse. # 8 methods x 3 seeds = 24 jobs, each on 1 A800 GPU. set -u PYTHON=python BASEDIR=${PULSE_ROOT} OUTDIR=${BASEDIR}/results/t1_extended LOGDIR=${OUTDIR}/slurm_logs PRETRAIN_DIR=${BASEDIR}/results/exp1_v2 mkdir -p ${LOGDIR} COMMON="--epochs 80 --batch_size 8 --lr 1e-3 --hidden_dim 128 \ --downsample 5 --patience 15 --output_dir ${OUTDIR}" SUBMIT() { local jname=$1 hrs=$2; shift 2 sbatch -J "${jname}" -p gpuA800 --gres=gpu:1 -N 1 -n 1 \ --cpus-per-task=4 --mem=32G -t "${hrs}:00:00" \ -o "${LOGDIR}/${jname}_%j.out" \ -e "${LOGDIR}/${jname}_%j.err" \ --export=ALL \ --wrap="export PYTHONUNBUFFERED=1; cd ${BASEDIR}; $*" } METHODS=(stgcn ctrgcn limu_bert emg_cnn actionsense mult perceiver) SEEDS=(42 123 456) echo "=== 7 published baselines x 3 seeds = 21 jobs ===" for m in "${METHODS[@]}"; do for s in "${SEEDS[@]}"; do SUBMIT "t1_${m}_s${s}" 2 \ "$PYTHON experiments/train_baselines_t1.py \ --method ${m} --seed ${s} ${COMMON}" echo " submitted ${m}_s${s}" done done echo "" echo "=== SyncFuse full (all 4 components) x 3 seeds = 3 jobs ===" for s in "${SEEDS[@]}"; do SUBMIT "t1_syncfuse_s${s}" 3 \ "$PYTHON experiments/train_baselines_t1.py \ --method syncfuse --seed ${s} \ --mod_dropout_p 0.3 --use_xmod_shift --use_learned_late \ --pretrained_dir ${PRETRAIN_DIR} ${COMMON}" echo " submitted syncfuse_s${s}" done echo "" echo "=== SyncFuse ablations x 1 seed (42) = 4 jobs ===" # Ablate each component # - no modality dropout SUBMIT "t1_syncfuse_abl_noDrop" 3 \ "$PYTHON experiments/train_baselines_t1.py \ --method syncfuse --seed 42 --tag noDrop \ --mod_dropout_p 0.0 --use_xmod_shift --use_learned_late \ --pretrained_dir ${PRETRAIN_DIR} ${COMMON}" # - no pretrained transfer SUBMIT "t1_syncfuse_abl_noPre" 3 \ "$PYTHON experiments/train_baselines_t1.py \ --method syncfuse --seed 42 --tag noPre \ --mod_dropout_p 0.3 --use_xmod_shift --use_learned_late ${COMMON}" # - no cross-modal shift SUBMIT "t1_syncfuse_abl_noShift" 3 \ "$PYTHON experiments/train_baselines_t1.py \ --method syncfuse --seed 42 --tag noShift \ --mod_dropout_p 0.3 --use_learned_late \ --pretrained_dir ${PRETRAIN_DIR} ${COMMON}" # - no learnable late fusion SUBMIT "t1_syncfuse_abl_noLearn" 3 \ "$PYTHON experiments/train_baselines_t1.py \ --method syncfuse --seed 42 --tag noLearn \ --mod_dropout_p 0.3 --use_xmod_shift \ --pretrained_dir ${PRETRAIN_DIR} ${COMMON}" echo "" echo "All jobs submitted. squeue -u \$USER"