Buckets:
| # cwm3/eval/run_joint_evals_final_face.sh — R2 WP4 batch 1 F3 (2026-09-16; pre-registration docs/decisions.md 2026-09-16T06:46:35Z): paired evaluations of the | |
| # face-input variant of the joint model, CPU, layout guards on. Runs I1_{indep,all_minus_road2drv}_s<k>_final_face (U base *_face: the FINAL U recipe + the 9 | |
| # causal face-landmark channels, NO gaze chain) vs the FROZEN main I1_all_minus_road2drv_s<k>_final and I1_indep_s<k>_final (read-only). Identical rows, driver | |
| # populations from the v2 causal kin targets (both protocols); every tag idempotent. Mirrors eval/run_joint_evals_final_gzfc.sh. | |
| # finalc_s<k>_allminusface_vs_allminus (a) the pre-registered comparison: variant vs FROZEN main (driver cells: Δ [CI] + the acceptable-degradation margins) | |
| # finalc_s<k>_allminusface_vs_indepface (b) interaction effect on the face bases (B2-style, descriptive) | |
| # finalc_s<k>_indepface_vs_indep attribution: the U-base swap alone (assembled bases, no training) | |
| # finalc_s<k>_allminusface_vs_allminusgzfc face input alone vs face input + gaze chain (the `_gzfc` appendix variant): is the gzfc head_turn gain the INPUT or the LOSS? | |
| # finalcm_s<k>_allminusface_vs_{allminus,indepface} masked protocol (64 v2 driver-box-suspect routes censored) | |
| # finalc_s<k>_{allminusface,indepface}_vs_k0, finalcm_s<k>_allminusface_vs_k0 driver cells vs the k0 heuristic / persistence (B1 on the variant) | |
| # finalP_s<k>_allminusface_vs_{allminus,indepface} P cells (eval/pressure_eval.py) | |
| # finalcv_s<k>_allminusface_vs_{allminus,indepface,allminusgzfc} the same onset cells on the VALIDATION split (--split val, every cell): the rev-2 discipline | |
| # decides module adoption on validation; the test rows above are the confirmation (the held-out set follows in WP5) | |
| # bash eval/run_joint_evals_final_face.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; } | |
| # 2026-09-16: pairings go through eval/pc_joint_locked.py (private rows + flock-guarded append to the shared CSV; several agents pair concurrently) and each | |
| # call waits for MemAvailable >= MIN_AVAIL_GB (default 8; a pairing holds ~4 GB) — the first seed-1/2 pass was killed by host memory pressure. | |
| MIN_AVAIL_GB="${MIN_AVAIL_GB:-8}" | |
| mem_wait() { while [[ $(awk '/MemAvailable/ {printf "%d", $2/1048576}' /proc/meminfo) -lt $MIN_AVAIL_GB ]]; do sleep 30; done; } | |
| have_tag_val() { grep -q ",$1,$2,val," results/paired_compare.csv 2>/dev/null; } | |
| pcv() { # validation split, onset cells only: tag a b [extra args] | |
| local tag="$1" a="$2" b="$3"; shift 3 | |
| done_run "$a" && done_run "$b" || { echo "skip $tag"; return; } | |
| for reg in manual engaged; do | |
| have_tag_val "$tag" "$reg" && continue | |
| mem_wait; echo "== $tag $reg (val)" | |
| $PY eval/pc_joint_locked.py --regime "$reg" --split val --a "results/runs/$a" --b "results/runs/$b" --tag "$tag" "$@" 2>&1 | grep -E "appended|Error|Traceback|File \"|LAYOUT GUARD" | cut -c1-220 | |
| done | |
| } | |
| 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 | |
| mem_wait; echo "== $tag $reg" | |
| $PY eval/pc_joint_locked.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 | |
| mem_wait; 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 | |
| } | |
| C="--kin-targets causal_routes --kin-version v2" | |
| for s in ${1:-0 1 2}; do | |
| AF=I1_all_minus_road2drv_s${s}_final_face; IF=I1_indep_s${s}_final_face; AM=I1_all_minus_road2drv_s${s}_final; I=I1_indep_s${s}_final; AG=I1_all_minus_road2drv_s${s}_final_gzfc | |
| pc "finalc_s${s}_allminusface_vs_allminus" $AF $AM $C | |
| pc "finalc_s${s}_allminusface_vs_indepface" $AF $IF $C | |
| pc "finalc_s${s}_indepface_vs_indep" $IF $I $C | |
| pc "finalc_s${s}_allminusface_vs_allminusgzfc" $AF $AG $C | |
| pc "finalcm_s${s}_allminusface_vs_allminus" $AF $AM $C --mask-routes $MASK | |
| pc "finalcm_s${s}_allminusface_vs_indepface" $AF $IF $C --mask-routes $MASK | |
| pc "finalc_s${s}_allminusface_vs_k0" $AF none $C --b-k0 | |
| pc "finalcm_s${s}_allminusface_vs_k0" $AF none $C --b-k0 --mask-routes $MASK | |
| pc "finalc_s${s}_indepface_vs_k0" $IF none $C --b-k0 | |
| pe "finalP_s${s}_allminusface_vs_allminus" $AF $AM | |
| pe "finalP_s${s}_allminusface_vs_indepface" $AF $IF | |
| pcv "finalcv_s${s}_allminusface_vs_allminus" $AF $AM $C | |
| pcv "finalcv_s${s}_allminusface_vs_indepface" $AF $IF $C | |
| pcv "finalcv_s${s}_allminusface_vs_allminusgzfc" $AF $AG $C | |
| done | |
| if [[ "${2:-1}" == "1" ]]; then S=${1:-0 1 2} | |
| $PY eval/report_final_face.py --seeds ${S// /,} --out results/tables/stage_final_face.md 2>&1 | grep -E "written|VERDICT|READING" | |
| fi | |
| echo FINAL_FACE_EVALS_DONE | |
Xet Storage Details
- Size:
- 5.59 kB
- Xet hash:
- f46eeb11f6006c2d2255e037db243b2b7d47c5931c798a168dba334bfaa3b680
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.