File size: 1,577 Bytes
20c251e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
64
65
66
#!/bin/bash
#SBATCH --job-name=dovla_hparam_sweep
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8
#SBATCH --gres=gpu:1
#SBATCH --mem=64000M
#SBATCH --time=48:00:00
#SBATCH --output=logs/phase_a4_hparam_%A_%a.out
#SBATCH --error=logs/phase_a4_hparam_%A_%a.err
#SBATCH --array=0-8

set -euo pipefail

# Phase A4: Hyperparameter sweep
# Grid: 3 LR x 3 hidden_dim = 9 configs

PROJECT_DIR="${PROJECT_DIR:-$PWD}"
cd "$PROJECT_DIR"

source .venv/bin/activate

DATASET="/scratch/$USER/dovla/experiments/maniskill_presuccess_six_task_collection"
OUT_ROOT="/scratch/$USER/dovla/experiments/phase_a4_hparam_sweep"

# Hyperparameter grid
LRS=(0.0001 0.0003 0.001)
HIDDEN_DIMS=(256 512 1024)

# Map array index to config
IDX=$SLURM_ARRAY_TASK_ID
LR_IDX=$((IDX / 3))
HD_IDX=$((IDX % 3))

LR="${LRS[$LR_IDX]}"
HIDDEN_DIM="${HIDDEN_DIMS[$HD_IDX]}"

OUT_DIR="$OUT_ROOT/lr${LR}_h${HIDDEN_DIM}"
mkdir -p "$OUT_DIR" logs

echo "=== Phase A4: Hyperparameter Sweep ==="
echo "Config $IDX: LR=$LR, Hidden=$HIDDEN_DIM"
echo ""

python scripts/train_dovla.py \
    --dataset "$DATASET" \
    --out "$OUT_DIR" \
    --objective lattice_field \
    --hidden-dim "$HIDDEN_DIM" \
    --epochs 50 \
    --batch-groups 16 \
    --lr "$LR" \
    --device auto \
    --seed 0

echo ""
# Quick eval
python scripts/eval_lattice_checkpoint.py \
    --checkpoint "$OUT_DIR/best.pt" \
    --dataset /scratch/$USER/dovla/experiments/maniskill_presuccess_six_task_collection \
    --out "$OUT_DIR/lattice_eval.json" \
    --mode field_only \
    --all-groups

echo "✅ Phase A4 config $IDX complete"