AsianPlayer/TriDrive / code /eval /run_joint_evals_final_gzfc.sh
AsianPlayer's picture
download
raw
4.35 kB
#!/usr/bin/env bash
# cwm3/eval/run_joint_evals_final_gzfc.sh — paired evaluations of the gaze-chain APPENDIX variant (2026-09-12; pre-registered in docs/decisions.md), CPU, layout guards on.
# Runs: I1_{indep,all_minus_road2drv}_s<k>_final_gzfc (U base *_gzfc: gaze_off chain + causal face inputs) vs the FROZEN main I1_all_minus_road2drv_s<k>_final and
# I1_indep_s<k>_final (read-only; nothing of the frozen runs is rewritten). Identical rows, driver populations from the v2 causal kin targets; every tag idempotent.
# finalc_s<k>_allminusgzfc_vs_allminus (a) the pre-registered comparison: variant vs FROZEN main (rule: no own endpoint WORSE AND head_turn_onset BEATS in >= 1 regime)
# finalc_s<k>_allminusgzfc_vs_indepgzfc (b) interaction effect on the gzfc bases (B2-style, descriptive)
# finalc_s<k>_indepgzfc_vs_indep attribution: the U-base swap alone (assembled bases, no training)
# finalcm_s<k>_allminusgzfc_vs_{allminus,indepgzfc} the same with the 64 v2 driver-box-suspect routes censored (--mask-routes sensitivity)
# finalc_s<k>_{allminusgzfc,indepgzfc}_vs_k0, finalcm_s<k>_allminusgzfc_vs_k0 driver cells vs the k0 heuristic / persistence (B1 on the variant)
# finalP_s<k>_allminusgzfc_vs_{allminus,indepgzfc} P cells (eval/pressure_eval.py, p_onset|<chain>|3s)
# gazec_s<k>_allminusgzfc_vs_indepgzfc gaze_off_on / gaze_off_off onset cells (eval/gaze_chain_eval.py; joint layouts carry the gaze block)
# bash eval/run_joint_evals_final_gzfc.sh "0 1 2" [render=1]
set -u
cd "$(dirname "$0")/.."
PY=python
export OMP_NUM_THREADS=4 MKL_NUM_THREADS=4
MASK=results/targets_kin_causal_routes_v2/driver_box_suspect_routes.json
have_tag() { grep -q ",$1,$2,test," results/paired_compare.csv 2>/dev/null; }
done_run() { [[ -f results/runs/$1/PRED_DONE && -f results/runs/$1/TRAIN_DONE ]]; }
pc() { # tag a b [extra args] (b = none with --b-k0)
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" "$@" 2>&1 | grep -E "appended|Error|Traceback|File \"|LAYOUT GUARD" | cut -c1-220
done
}
pe() { # pressure_eval: tag a b
local tag="$1" a="$2" b="$3"
done_run "$a" && done_run "$b" || { echo "skip $tag"; return; }
for reg in manual engaged; do
have_tag "$tag" "$reg" && continue
echo "== $tag $reg (P cells)"
$PY eval/pressure_eval.py --regime "$reg" --a "results/runs/$a" --b "results/runs/$b" --tag "$tag" 2>&1 | grep -E "appended|Error|Traceback|File \"|LAYOUT GUARD" | cut -c1-220
done
}
ge() { # gaze_chain_eval: tag a b
local tag="$1" a="$2" b="$3"
done_run "$a" && done_run "$b" || { echo "skip $tag"; return; }
for reg in manual engaged; do
have_tag "$tag" "$reg" && continue
echo "== $tag $reg (gaze cells)"
$PY eval/gaze_chain_eval.py --regime "$reg" --a "results/runs/$a" --b "results/runs/$b" --tag "$tag" 2>&1 | grep -E "appended|Error|Traceback|File \"|LAYOUT GUARD" | cut -c1-220
done
}
C="--kin-targets causal_routes --kin-version v2"
for s in ${1:-0 1 2}; do
AG=I1_all_minus_road2drv_s${s}_final_gzfc; IG=I1_indep_s${s}_final_gzfc; AM=I1_all_minus_road2drv_s${s}_final; I=I1_indep_s${s}_final
pc "finalc_s${s}_allminusgzfc_vs_allminus" $AG $AM $C
pc "finalc_s${s}_allminusgzfc_vs_indepgzfc" $AG $IG $C
pc "finalc_s${s}_indepgzfc_vs_indep" $IG $I $C
pc "finalcm_s${s}_allminusgzfc_vs_allminus" $AG $AM $C --mask-routes $MASK
pc "finalcm_s${s}_allminusgzfc_vs_indepgzfc" $AG $IG $C --mask-routes $MASK
pc "finalc_s${s}_allminusgzfc_vs_k0" $AG none $C --b-k0
pc "finalcm_s${s}_allminusgzfc_vs_k0" $AG none $C --b-k0 --mask-routes $MASK
pc "finalc_s${s}_indepgzfc_vs_k0" $IG none $C --b-k0
pe "finalP_s${s}_allminusgzfc_vs_allminus" $AG $AM
pe "finalP_s${s}_allminusgzfc_vs_indepgzfc" $AG $IG
ge "gazec_s${s}_allminusgzfc_vs_indepgzfc" $AG $IG
done
if [[ "${2:-1}" == "1" ]]; then S=${1:-0 1 2}
$PY eval/report_final_gzfc.py --seeds ${S// /,} --out results/tables/stage_final_gzfc.md 2>&1 | grep -E "written|VERDICT|rule"
fi
echo FINAL_GZFC_EVALS_DONE

Xet Storage Details

Size:
4.35 kB
·
Xet hash:
43459c32c81b6ec94f0c78fb18d9cc818505f73306022f7f176799daa375676f

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