| # Exp2 Action Segmentation: run all modality combos from Exp1 | |
| # Already done: mocap, emg, mocap+emg+eyetrack, mocap+emg+eyetrack+imu, all 5 | |
| # Missing: imu, pressure, eyetrack, emg+imu, mocap+imu, mocap+emg+imu, | |
| # mocap+emg+eyetrack+pressure, mocap+emg | |
| # = 8 combos x 3 models = 24 jobs | |
| PYTHON=python | |
| SCRIPT=${PULSE_ROOT}/experiments/train_exp2.py | |
| OUTDIR=${PULSE_ROOT}/results/exp2 | |
| LOGDIR=${OUTDIR}/slurm_logs | |
| mkdir -p $LOGDIR | |
| COMMON="--epochs 80 --batch_size 16 --lr 5e-4 --weight_decay 1e-4 --hidden_dim 64 --downsample 2 --patience 15 --seed 42 --output_dir $OUTDIR" | |
| MODELS=(tcn mstcn lstm) | |
| MISSING_MODS=("imu" "pressure" "eyetrack" "emg,imu" "mocap,imu" "mocap,emg,imu" "mocap,emg,eyetrack,pressure" "mocap,emg") | |
| COUNT=0 | |
| for mods in "${MISSING_MODS[@]}"; do | |
| for model in "${MODELS[@]}"; do | |
| mod_tag=$(echo $mods | tr ',' '-') | |
| job_name="e2_${model}_${mod_tag}" | |
| sbatch \ | |
| -J "$job_name" \ | |
| -p gpuA800 \ | |
| --gres=gpu:1 \ | |
| -N 1 -n 1 \ | |
| --cpus-per-task=8 \ | |
| --mem=32G \ | |
| -t 2: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 --model $model --modalities $mods $COMMON" | |
| echo "Submitted: $job_name" | |
| COUNT=$((COUNT + 1)) | |
| done | |
| done | |
| echo "" | |
| echo "Total: $COUNT jobs submitted" | |
| echo "Results: $OUTDIR" | |