poolcoach-analyzer / scripts /experiments /run_analyzer_cpu_rebaseline.bat
masterdanh's picture
feat(analyzer): rebaseline the demo bundle on the cpu pipeline
1c0d153
Raw History Blame Contribute Delete
2.84 kB
@echo off
REM ============================================================
REM CPU REBASELINE (25/08/2026) -- regenerate app/demo_analyzer/
REM from the CPU pipeline, replacing the GPU bundle of 14/08.
REM
REM Why this run happened (design decision, Cowork 25/08):
REM The packaged demo set came from a CUDA worker (14/08, run
REM c9fda71c). CUDA does NOT reproduce: 13-14/08 the same
REM input/model/thresholds differed in 131 cells between two
REM runs and ShotNet amplified that into a different spin
REM class. The CPU path DOES reproduce bit for bit on the same
REM machine (three-way check 24/08). The Space runs on CPU, so
REM the shipped demo now comes from the CPU path -- and the
REM older "do not re-run" rule in app/demo_analyzer/README.md,
REM written for the GPU era, is replaced by "the same host MUST
REM reproduce these numbers exactly".
REM Second reason: the 14/08 JSON still carries Vietnamese
REM strings (spin_evidence). Server strings were translated on
REM 24/08, so a fresh run produces English data by itself --
REM no hand-editing of worker output.
REM
REM Same two inputs as run A2b (14/08) and run C (24/08):
REM VOD rack_5245_5805.mp4 (Florida Open, 52:45-58:05)
REM corners [[527.5,869.7],[1380.1,864.0],
REM [1232.3,278.5],[673.0,272.8]]
REM CPU environment: poolcoach-cv-env carries torch 2.12.1+cpu,
REM so there is no CUDA to fall back to; POOLCOACH_CV_DEVICE=cpu
REM states it anyway.
REM
REM Acceptance gate (BRIEF 25/08, step B):
REM 14/14 shots must match column C of
REM poolcoach-logs\results\2026-08-24_analyzer-three-way\
REM three_way.json on EVERY field (n_collisions, analytic
REM v0/phi, shotnet v0/phi, the suspect valve flag). Exact
REM match, no +-2 tolerance: same host, same CPU path. Any
REM difference is a regression after the PR #3 merge, NOT
REM noise -- stop and report, never re-run until it matches.
REM
REM No app or Redis has to be running: the driver starts the app
REM in local mode (POOLCOACH_LOCAL_CV=1), which runs the very
REM functions of scripts/cv_worker.py on a thread of the same
REM process -- the same code path as the Hugging Face Space.
REM ============================================================
setlocal
set PYTHONUTF8=1
set PYTHONDONTWRITEBYTECODE=1
set POOLCOACH_LOCAL_CV=1
set POOLCOACH_CV_DEVICE=cpu
set POOLCOACH_APP_ROOT=D:\poolcoach\poolcoach-app
set POOLCOACH_ANALYZER_DIR=D:\poolcoach\out_cpu_rebaseline_20260825
set POOLCOACH_REBASELINE_VOD=D:\Khoa luan\poolcoach-rl\datasets\bb9_pilot\rack_a1\rack_5245_5805.mp4
set PY=D:\poolcoach\poolcoach-cv-env\Scripts\python.exe
if not exist "%POOLCOACH_ANALYZER_DIR%" mkdir "%POOLCOACH_ANALYZER_DIR%"
"%PY%" "D:\poolcoach\run_analyzer_cpu_rebaseline.py"
echo [rebaseline] exit code %ERRORLEVEL%
endlocal