AsianPlayer/TriDrive / code /eval /run_joint_evals_v2p.sh
AsianPlayer's picture
download
raw
3.38 kB
#!/usr/bin/env bash
# cwm3/eval/run_joint_evals_v2p.sh — kin v2p ARM (2026-09-18; pre-registration docs/decisions.md 2026-09-18T05:34:40Z): paired evaluations of the v2p input arm
# of the kpf joint model, CPU, layout guards on. Runs I1_all_minus_road2drv_s<k>_final_ecan_kpf_kcv2p (kpf joint model + 3 keypoint input proxies)
# vs the FROZEN kpf joint model I1_all_minus_road2drv_s<k>_final_ecan_kpf (read-only) = a copy of run_joint_evals_f1_kpf.sh with A / B / tags renamed. Identical rows, driver populations from the v2 causal
# kin targets; every tag idempotent. Mirrors eval/run_joint_evals_final_face.sh (pc_joint_locked.py private rows + flock append; MemAvailable wait).
# finalcv_s<k>_allminusecankpfv2p_vs_allminusecankpf (a-val) VALIDATION split — the ADOPTION decision (rev-2 discipline)
# finalc_s<k>_allminusecankpfv2p_vs_allminusecankpf (a) test split — confirmation (Δ [CI] + the acceptable-degradation margins)
# finalcm_s<k>_allminusecankpfv2p_vs_allminusecankpf masked protocol (human-verified driver-box mask)
# finalc_s<k>_allminusecankpfv2p_vs_k0 B1 on the variant (driver cells vs k0)
# finalP_s<k>_allminusecankpfv2p_vs_allminusecankpf P cells (eval/pressure_eval.py)
# bash eval/run_joint_evals_v2p.sh "0 1 2"
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_verified_mask.json
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() { grep -q ",$1,$2,$3," results/paired_compare.csv 2>/dev/null; }
done_run() { [[ -f results/runs/$1/PRED_DONE && -f results/runs/$1/TRAIN_DONE ]]; }
pc() { # split tag a b [extra args] (b = none with --b-k0)
local split="$1" tag="$2" a="$3" b="$4"; shift 4
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" "$split" && continue
mem_wait; echo "== $tag $reg ($split)"
$PY eval/pc_joint_locked.py --regime "$reg" --split "$split" --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" test && 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
AK=I1_all_minus_road2drv_s${s}_final_ecan_kpf_kcv2p; AM=I1_all_minus_road2drv_s${s}_final_ecan_kpf
pc val "finalcv_s${s}_allminusecankpfv2p_vs_allminusecankpf" $AK $AM $C
pc test "finalc_s${s}_allminusecankpfv2p_vs_allminusecankpf" $AK $AM $C
pc test "finalcm_s${s}_allminusecankpfv2p_vs_allminusecankpf" $AK $AM $C --mask-routes $MASK
pc test "finalc_s${s}_allminusecankpfv2p_vs_k0" $AK none $C --b-k0
pe "finalP_s${s}_allminusecankpfv2p_vs_allminusecankpf" $AK $AM
done
echo V2P_EVALS_DONE

Xet Storage Details

Size:
3.38 kB
·
Xet hash:
95b477a40c1905fd52f620a6aaeb4c24ecc7922bed7ba98a06de4559c1babe26

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