#!/usr/bin/env bash # Validation-only development sweep for predictor tracking timescales. # Usage: # traffic_timescale_validation_sweep.sh [eta_Ps] [warmup_steps] [seeds] set -eu cd "$(dirname "$0")/.." GPU="${1:?GPU index required}" SCALE="${2:?topdown traffic scale required}" ETA_PS="${3:-0.002 0.01 0.05}" WARMUPS="${4:-0 200 1000}" SEEDS="${5:-0}" PYTHON="${PYTHON:-/home/yurenh2/miniconda3/envs/ep_pascal/bin/python3}" scale_tag="${SCALE//./p}" for seed in $SEEDS; do for eta_p in $ETA_PS; do eta_tag="${eta_p//./p}" for warmup in $WARMUPS; do tag="traffic_time_dev_v1_mnist_topdown_rho${scale_tag}_ep${eta_tag}_wu${warmup}_d3_s${seed}" out="results/${tag}.json" if [ -s "$out" ]; then echo "[$tag] exists; skipping" continue fi CUDA_VISIBLE_DEVICES="$GPU" "$PYTHON" experiments/run.py \ --mode sdil --dataset mnist --device cuda \ --depth 3 --width 256 --residual 1 --act tanh \ --epochs 15 --batch_size 128 --eta 0.05 --momentum 0.9 \ --eta_A 0.02 --eta_P "$eta_p" \ --pert_sigma 0.01 --pert_every 4 --pert_ndirs 16 --pert_mode simultaneous \ --traffic_mode topdown --nuis_rho "$SCALE" \ --use_residual 1 --learn_A 1 --learn_P 1 --p_neutral 1 \ --p_warmup_steps "$warmup" --p_warmup_eta 0.05 \ --val_examples 5000 --split_seed 2027 --eval_split validation \ --diagnostics alignment --seed "$seed" --log_every 200 --tag "$tag" done done done