Fix one-epoch track GRU smoke launcher

This commit is contained in:
Xin Wang
2026-09-07 00:51:14 +08:00
parent 4aed4697a5
commit fb22108c57
3 changed files with 20 additions and 2 deletions

View File

@@ -62,7 +62,9 @@ result.
- `track-gru-residual` builds strictly causal histories from anonymous provided - `track-gru-residual` builds strictly causal histories from anonymous provided
track IDs, applies one shared GRU per track, lets G+A query current track 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 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). [`docs/easycom_track_gru_residual.md`](docs/easycom_track_gru_residual.md).
### Current blocker ### Current blocker

View File

@@ -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 source-clip indices and person IDs; this experiment does not require feature
re-extraction. 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 ## Fair initialization
`track-gru-residual` requires `--initialize-pooled-checkpoint`. The loader `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 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 Then use three GPUs in three foreground terminals. These runs report Session
12 development scores, not the official test set: 12 development scores, not the official test set:

View File

@@ -11,7 +11,14 @@ CHECKPOINT_ROOT=${CHECKPOINT_ROOT:-checkpoints/easycom_track_gru_residual}
RESULT_ROOT=${RESULT_ROOT:-results/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} TEST_RESULT_ROOT=${TEST_RESULT_ROOT:-results/easycom_track_gru_residual_test}
EPOCHS=${EPOCHS:-4} 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} LOCAL_PROJECTION_DIM=${LOCAL_PROJECTION_DIM:-256}
PERSON_ATTENTION_DIM=${PERSON_ATTENTION_DIM:-256} PERSON_ATTENTION_DIM=${PERSON_ATTENTION_DIM:-256}
PERSON_ATTENTION_HEADS=${PERSON_ATTENTION_HEADS:-4} PERSON_ATTENTION_HEADS=${PERSON_ATTENTION_HEADS:-4}
@@ -147,6 +154,7 @@ if [[ "$variant" == test ]]; then
fi fi
if [[ ! -s "$checkpoint" ]]; then if [[ ! -s "$checkpoint" ]]; then
echo "Missing checkpoint: $checkpoint" >&2 echo "Missing checkpoint: $checkpoint" >&2
echo "The test mode is inference-only; run 'all' for these seeds first." >&2
exit 1 exit 1
fi fi
echo "$(date): final test ${selected}, seed=${seed}" echo "$(date): final test ${selected}, seed=${seed}"