feat: per-step supervision over full sequence

- model outputs (B, S, 2) instead of (B, 2) — GRU output at every timestep
- train/val loss computed over all S timesteps with reduction=none
- benchmark/evaluate.py takes pred[:, -1, :] for final-step evaluation
- added per-step loss logging (8 evenly spaced steps) to TensorBoard

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-07-09 15:49:23 +08:00
parent 504332190d
commit 56aa10a503
3 changed files with 26 additions and 20 deletions
+2 -1
View File
@@ -114,7 +114,8 @@ def evaluate_scene(
tilt = batch["tilt"].to(device)
target = batch["v_body_target"].to(device) # (B, S, 2) normalized
pred = model(events, tilt) # (B, 2) normalized
pred = model(events, tilt) # (B, S, 2)
pred = pred[:, -1, :] # (B, 2) — last timestep
target_last = target[:, -1, :] # (B, 2) normalized
all_preds.append(pred.cpu().numpy())