File size: 2,262 Bytes
b4b2877
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash
# Action Recognition Round 2: Fix over-padding + add prev_action
# Key insight: segments are 1-6s (median 2s), window_sec=10 was 80% padding
# Group A: window=4s, 8 coarse (9 jobs)
# Group B: window=4s, 8 coarse + prev_action (9 jobs)
# Total: 18 jobs

PYTHON=python
BASEDIR=${PULSE_ROOT}
TRAIN_SCRIPT=${BASEDIR}/experiments/tasks/train_pred_cls.py
OUTDIR_A=${BASEDIR}/results/recog2a
OUTDIR_B=${BASEDIR}/results/recog2b
LOGDIR_A=${OUTDIR_A}/slurm_logs
LOGDIR_B=${OUTDIR_B}/slurm_logs
mkdir -p $LOGDIR_A $LOGDIR_B

COMMON_A="--mode recognition --coarse --epochs 80 --batch_size 32 --lr 1e-3 --weight_decay 1e-4 --hidden_dim 128 --dropout 0.2 --downsample 5 --patience 20 --seed 42 --augment --noise_std 0.1 --time_mask_ratio 0.1 --label_smoothing 0.1 --window_sec 4.0"
COMMON_B="$COMMON_A --use_prev_action"

MODS=("imu" "emg" "mocap" "emg,imu" "mocap,imu" "mocap,emg,imu" "mocap,emg,eyetrack" "mocap,emg,eyetrack,imu" "mocap,emg,eyetrack,imu,pressure")

echo "=== Group A: window=4s, no prev_action ==="
for mods in "${MODS[@]}"; do
    mod_tag=$(echo $mods | tr ',' '-')
    sbatch \
        -J "rec2a_${mod_tag}" \
        -p gpuA800 \
        --gres=gpu:1 \
        -N 1 -n 1 \
        --cpus-per-task=4 \
        --mem=32G \
        -t 2:00:00 \
        -o "${LOGDIR_A}/${mod_tag}_%j.out" \
        -e "${LOGDIR_A}/${mod_tag}_%j.err" \
        --export=ALL \
        --wrap="export PYTHONUNBUFFERED=1; cd ${BASEDIR}; $PYTHON $TRAIN_SCRIPT --modalities $mods $COMMON_A --output_dir $OUTDIR_A"
    echo "Submitted A: $mods"
done

echo ""
echo "=== Group B: window=4s + prev_action ==="
for mods in "${MODS[@]}"; do
    mod_tag=$(echo $mods | tr ',' '-')
    sbatch \
        -J "rec2b_${mod_tag}" \
        -p gpuA800 \
        --gres=gpu:1 \
        -N 1 -n 1 \
        --cpus-per-task=4 \
        --mem=32G \
        -t 2:00:00 \
        -o "${LOGDIR_B}/${mod_tag}_%j.out" \
        -e "${LOGDIR_B}/${mod_tag}_%j.err" \
        --export=ALL \
        --wrap="export PYTHONUNBUFFERED=1; cd ${BASEDIR}; $PYTHON $TRAIN_SCRIPT --modalities $mods $COMMON_B --output_dir $OUTDIR_B"
    echo "Submitted B: $mods"
done

echo ""
echo "Total: 18 jobs | Recognition Round 2"
echo "Group A (window=4s): $OUTDIR_A"
echo "Group B (window=4s+prev): $OUTDIR_B"