PULSE-code / experiments /slurm /run_exp1_fusion.sh
velvet-pine-22's picture
Upload folder using huggingface_hub
b4b2877 verified
#!/bin/bash
# Submit all fusion experiments as individual 1-GPU SLURM jobs
# SLURM scheduler will automatically place them on any available GPU
PYTHON=python
SCRIPT=${PULSE_ROOT}/experiments/train_exp1.py
OUTDIR=${PULSE_ROOT}/results/exp1
LOGDIR=${OUTDIR}/slurm_logs
mkdir -p $LOGDIR
COMMON_ARGS="--model transformer --epochs 100 --batch_size 16 --lr 1e-3 --weight_decay 1e-4 --hidden_dim 128 --downsample 5 --patience 15 --seed 42 --output_dir $OUTDIR"
FUSIONS=(weighted_late gated_late stacking product moe late attention)
MODALITIES=("mocap,emg,eyetrack" "mocap,emg,eyetrack,imu,pressure")
for fusion in "${FUSIONS[@]}"; do
for mods in "${MODALITIES[@]}"; do
mod_tag=$(echo $mods | tr ',' '-')
job_name="f_${fusion}_${mod_tag}"
sbatch \
-J "$job_name" \
-p gpuA800 \
--gres=gpu:1 \
-N 1 -n 1 \
--cpus-per-task=8 \
--mem=32G \
-t 3:00:00 \
-o "${LOGDIR}/${job_name}_%j.out" \
-e "${LOGDIR}/${job_name}_%j.err" \
--export=ALL \
--wrap="export PYTHONUNBUFFERED=1; cd ${PULSE_ROOT}; $PYTHON $SCRIPT --fusion $fusion --modalities $mods $COMMON_ARGS"
echo "Submitted: $job_name"
done
done
echo "All 14 fusion experiments submitted!"