AsianPlayer/TriDrive / code /eval /run_gaze_evals.sh
AsianPlayer's picture
download
raw
3.68 kB
#!/usr/bin/env bash
# cwm3/eval/run_gaze_evals.sh — evaluation of the gaze-chain U0 runs (gaze/robustness agent, 2026-09-12; results/tables/gaze_chain.md), CPU.
# bash eval/run_gaze_evals.sh "<seeds>" [render=1]
# Per seed k and regime (all tags idempotent on results/paired_compare.csv; driver populations from the v2 causal kin targets):
# gaze_s<k>_gz_vs_clip8ln / gaze_s<k>_gzfc_vs_clip8ln A = U0_kin_can_noK_s<k>_kcv2_clip8_ln_{gz,gzfc} B = …_kcv2_clip8_ln (survivor) — K4-style driver cells, identical rows
# gaze_s<k>_gzfc_vs_gz A = _gzfc B = _gz — the face-input effect
# gaze_s<k>_{gz,gzfc}_vs_k0 B = k0 heuristic (+ persistence base-rate rows) — levels vs the label-free references
# gazeon_s<k>_{gz,gzfc}_vs_rule eval/gaze_chain_eval.py: gaze_off_on / off @3s PR-AUC (+ AUROC) vs the current-state rule |lm_yaw_dev|(t)
# gazeon_s<k>_gzfc_vs_gz, gazeon_s<k>_gz_persist the face effect on the gaze chain; persistence base rate
# gazegold_s<k>_{gz,gzfc} --dms-gold: gold clean-test rows, our gaze_off_on label, model vs DMS att@3s / rule / persistence -> results/gaze_chain/gaze_gold.csv
set -u
cd "$(dirname "$0")/.."
PY=python
export OMP_NUM_THREADS=4 MKL_NUM_THREADS=4
have_tag() { grep -q ",$1,$2,test," results/paired_compare.csv 2>/dev/null; }
have_gold() { grep -q ",$1,$2," results/gaze_chain/gaze_gold.csv 2>/dev/null; }
done_run() { [[ -f results/runs/$1/PRED_DONE && -f results/runs/$1/TRAIN_DONE ]]; }
pc() { # tag a b [extra]
local tag="$1" a="$2" b="$3"; shift 3
done_run "$a" || { echo "skip $tag ($a not finished)"; return; }
[[ "$b" == none ]] || done_run "$b" || { echo "skip $tag ($b not finished)"; return; }
for reg in manual engaged; do
have_tag "$tag" "$reg" && continue
echo "== $tag $reg"
$PY eval/paired_compare_joint.py --regime "$reg" --a "results/runs/$a" --b "results/runs/$b" --tag "$tag" --kin-targets causal_routes --kin-version v2 "$@" 2>&1 | grep -E "appended|Error|Traceback|File \"|LAYOUT GUARD"
done
}
ge() { # tag a [extra] (gaze_chain_eval population mode)
local tag="$1" a="$2"; shift 2
done_run "$a" || { echo "skip $tag ($a not finished)"; return; }
for reg in manual engaged; do
have_tag "$tag" "$reg" && continue
echo "== $tag $reg"
$PY eval/gaze_chain_eval.py --regime "$reg" --a "results/runs/$a" --tag "$tag" "$@" 2>&1 | grep -E "appended|Error|Traceback|File \"|LAYOUT GUARD|gaze_onset"
done
}
for s in ${1:-0 1 2}; do
B=U0_kin_can_noK_s${s}_kcv2_clip8_ln; GZ=${B}_gz; FC=${B}_gzfc
pc "gaze_s${s}_gz_vs_clip8ln" $GZ $B
pc "gaze_s${s}_gzfc_vs_clip8ln" $FC $B
pc "gaze_s${s}_gzfc_vs_gz" $FC $GZ
pc "gaze_s${s}_gz_vs_k0" $GZ none --b-k0
pc "gaze_s${s}_gzfc_vs_k0" $FC none --b-k0
ge "gazeon_s${s}_gz_vs_rule" $GZ --b-rule --auroc
ge "gazeon_s${s}_gzfc_vs_rule" $FC --b-rule --auroc
ge "gazeon_s${s}_gzfc_vs_gz" $FC --b "results/runs/$GZ" --auroc
ge "gazeon_s${s}_gz_persist" $GZ --b-persistence
for v in gz gzfc; do
d=${B}_${v}; tag=gazegold_s${s}_${v}
done_run $d || { echo "skip $tag"; continue; }
have_gold "$tag" "$s" && continue
echo "== $tag"
$PY eval/gaze_chain_eval.py --dms-gold --a "results/runs/$d" --seed $s --tag "$tag" --n-boot 2000 2>&1 | grep -E "appended|Error|Traceback|File \"|rows in the|gold clean_test"
done
done
if [[ "${2:-1}" == "1" ]]; then $PY eval/report_gaze_chain.py --seeds ${1:-0 1 2} --out results/tables/gaze_chain.md 2>&1 | tail -3; fi
echo GAZE_EVALS_DONE

Xet Storage Details

Size:
3.68 kB
·
Xet hash:
de4e27f85a579c4cfec6063e968588435e30c0235272d592ad9f8d09a92f64bf

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.