| #!/usr/bin/env bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| set -euo pipefail |
| ROOT=/mnt/local-fast/opd_zt |
| cd "$ROOT" |
|
|
| |
| |
| |
| ROWS=( |
| |
| "01_vanilla_opd|CONFIG=opd TOTAL_EPOCHS=1" |
|
|
| |
| "02_cdopd_a0p5_black|CONFIG=cd_opd TOTAL_EPOCHS=1 CFG_ALPHA=0.5 CFG_PERTURBATION=black_frames" |
|
|
| |
| "03_cdopd_a0p5_shuffle|CONFIG=cd_opd TOTAL_EPOCHS=1 CFG_ALPHA=0.5 CFG_PERTURBATION=shuffle" |
|
|
| |
| "04_cdopd_a0p5_reverse|CONFIG=cd_opd TOTAL_EPOCHS=1 CFG_ALPHA=0.5 CFG_PERTURBATION=reverse" |
|
|
| |
| "05_cdopd_mi_mean|CONFIG=cd_opd TOTAL_EPOCHS=1 CFG_ALPHA=0.5 CFG_PERTURBATIONS=black_frames,shuffle,reverse CFG_AGGREGATION=mean" |
|
|
| |
| "06_cdopd_mi_pa|CONFIG=cd_opd TOTAL_EPOCHS=1 CFG_ALPHA=0.5 CFG_PERTURBATIONS=black_frames,shuffle,reverse CFG_AGGREGATION=grounding_weighted" |
|
|
| |
| "07_cdopd_mi_pa_a0p5|CONFIG=cd_opd TOTAL_EPOCHS=1 CFG_ALPHA=0.5 CFG_PERTURBATIONS=black_frames,shuffle,reverse CFG_AGGREGATION=grounding_weighted" |
| "08_cdopd_mi_pa_a1p5|CONFIG=cd_opd TOTAL_EPOCHS=1 CFG_ALPHA=1.5 CFG_PERTURBATIONS=black_frames,shuffle,reverse CFG_AGGREGATION=grounding_weighted" |
| ) |
|
|
| |
| SELECT=${RUNS:-$(seq 1 ${#ROWS[@]})} |
|
|
| for n in $SELECT; do |
| idx=$((n - 1)) |
| if (( idx < 0 || idx >= ${#ROWS[@]} )); then |
| echo "skip out-of-range row $n"; continue |
| fi |
| row="${ROWS[$idx]}" |
| tag="${row%%|*}" |
| env_vars="${row#*|}" |
|
|
| EXP_NAME="ablation_${tag}" |
| echo "==========================================" |
| echo "[row $n] $tag" |
| echo " env: $env_vars" |
| echo " experiment: $EXP_NAME" |
| echo "==========================================" |
|
|
| if [[ "${DRY:-0}" == "1" ]]; then |
| echo "DRY: env $env_vars EXPERIMENT_NAME=$EXP_NAME bash scripts/launch_opd.sh" |
| continue |
| fi |
|
|
| |
| rm -f "$ROOT/logs/opd.pid" "$ROOT/logs/cd_opd.pid" |
|
|
| |
| env $env_vars EXPERIMENT_NAME="$EXP_NAME" bash "$ROOT/scripts/launch_opd.sh" |
|
|
| |
| |
| if [[ "$env_vars" == *"CONFIG=cd_opd"* ]]; then |
| pidfile="$ROOT/logs/cd_opd.pid" |
| else |
| pidfile="$ROOT/logs/opd.pid" |
| fi |
| if [[ -f "$pidfile" ]]; then |
| pid=$(cat "$pidfile") |
| echo "Waiting for pid $pid to finish..." |
| while kill -0 "$pid" 2>/dev/null; do sleep 60; done |
| echo "Row $n done." |
| fi |
| done |
|
|
| echo "All selected rows complete." |
|
|