| #!/usr/bin/env bash |
| |
| |
| |
| |
| |
| |
| |
|
|
| set -e |
|
|
| ROOT="$(cd "$(dirname "$0")/.." && pwd)" |
| cd "$ROOT" |
|
|
| LOG="logs/mi_all_new.log" |
| mkdir -p logs |
|
|
| stamp() { date -u +"[%FT%TZ]"; } |
|
|
| echo "$(stamp) MI pipeline starting on all 2026-05-05 runs (GPU)" | tee -a "$LOG" |
|
|
| for d in experiments/runs/20260505-*/; do |
| rid=$(basename "$d") |
| ckpt_count=$(ls "$d/checkpoints/"ep*.pt 2>/dev/null | wc -l) |
| if [ "$ckpt_count" -lt 5 ]; then |
| echo "$(stamp) skip $rid (only $ckpt_count periodic ckpts)" | tee -a "$LOG" |
| continue |
| fi |
| if [ -f "$d/mechinterp/m1_probe_data.json" ]; then |
| echo "$(stamp) skip $rid (already has m1_probe_data.json)" | tee -a "$LOG" |
| continue |
| fi |
| echo "$(stamp) ==== M1 on $rid ($ckpt_count ckpts) ====" | tee -a "$LOG" |
| set +e |
| CUDA_VISIBLE_DEVICES=0 python3 -m experiments.mechinterp_m1 \ |
| --run_dir "$d" \ |
| --data_root data/wilds \ |
| --device cuda \ |
| --max_samples 600 >> "$LOG" 2>&1 |
| rc=$? |
| set -e |
| echo "$(stamp) ==== $rid exit=$rc ====" | tee -a "$LOG" |
| done |
|
|
| echo "$(stamp) MI pipeline complete." | tee -a "$LOG" |
|
|