From fb22108c570041f306f9ecbe25c516268a8aaab7 Mon Sep 17 00:00:00 2001 From: Xin Wang Date: Mon, 7 Sep 2026 00:51:14 +0800 Subject: [PATCH] Fix one-epoch track GRU smoke launcher --- PROJECT_CONTEXT.md | 4 +++- docs/easycom_track_gru_residual.md | 8 ++++++++ run_easycom_track_gru_residual.sh | 10 +++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/PROJECT_CONTEXT.md b/PROJECT_CONTEXT.md index 8187baa..1b939a9 100644 --- a/PROJECT_CONTEXT.md +++ b/PROJECT_CONTEXT.md @@ -62,7 +62,9 @@ result. - `track-gru-residual` builds strictly causal histories from anonymous provided track IDs, applies one shared GRU per track, lets G+A query current track states, and adds a zero-gated correction to an exactly initialized pooled - `G+A+V` checkpoint. See + `G+A+V` checkpoint. Its three focused loader/head/CLI round-trip tests passed + on the remote PyTorch/L20 environment on 2026-09-07; the one-session GPU + smoke and measured experiment are still pending. See [`docs/easycom_track_gru_residual.md`](docs/easycom_track_gru_residual.md). ### Current blocker diff --git a/docs/easycom_track_gru_residual.md b/docs/easycom_track_gru_residual.md index a8b9ece..483cb30 100644 --- a/docs/easycom_track_gru_residual.md +++ b/docs/easycom_track_gru_residual.md @@ -60,6 +60,11 @@ The existing EasyCom local sidecars already contain crop features, frame times, source-clip indices and person IDs; this experiment does not require feature re-extraction. +Runtime status (2026-09-07): the focused causal-history, exact-zero-gate and +train/infer round-trip tests passed in 49.699 seconds on the remote PyTorch/L20 +environment. This verifies the code path, not model quality. The one-session +GPU training smoke and full experiment remain unmeasured. + ## Fair initialization `track-gru-residual` requires `--initialize-pooled-checkpoint`. The loader @@ -103,6 +108,9 @@ CUDA_VISIBLE_DEVICES=0 \ bash run_easycom_track_gru_residual.sh all 0 ``` +For `EPOCHS=1`, the launcher automatically uses zero warmup unless +`WARMUP_EPOCHS` is explicitly supplied. + Then use three GPUs in three foreground terminals. These runs report Session 12 development scores, not the official test set: diff --git a/run_easycom_track_gru_residual.sh b/run_easycom_track_gru_residual.sh index 703cd43..c1f7572 100755 --- a/run_easycom_track_gru_residual.sh +++ b/run_easycom_track_gru_residual.sh @@ -11,7 +11,14 @@ CHECKPOINT_ROOT=${CHECKPOINT_ROOT:-checkpoints/easycom_track_gru_residual} RESULT_ROOT=${RESULT_ROOT:-results/easycom_track_gru_residual} TEST_RESULT_ROOT=${TEST_RESULT_ROOT:-results/easycom_track_gru_residual_test} EPOCHS=${EPOCHS:-4} -WARMUP_EPOCHS=${WARMUP_EPOCHS:-1.6} +if [[ -z "${WARMUP_EPOCHS:-}" ]]; then + # Keep the four-epoch screen unchanged, but make EPOCHS=1 smoke runs valid. + if (( EPOCHS == 1 )); then + WARMUP_EPOCHS=0 + else + WARMUP_EPOCHS=1.6 + fi +fi LOCAL_PROJECTION_DIM=${LOCAL_PROJECTION_DIM:-256} PERSON_ATTENTION_DIM=${PERSON_ATTENTION_DIM:-256} PERSON_ATTENTION_HEADS=${PERSON_ATTENTION_HEADS:-4} @@ -147,6 +154,7 @@ if [[ "$variant" == test ]]; then fi if [[ ! -s "$checkpoint" ]]; then echo "Missing checkpoint: $checkpoint" >&2 + echo "The test mode is inference-only; run 'all' for these seeds first." >&2 exit 1 fi echo "$(date): final test ${selected}, seed=${seed}"