feat: add TBPTT training with cross-batch hidden state carryover

- config: seq_len=128, batch_size=4 for long-sequence TBPTT
- dataset: create_tbptt_loader with non-overlapping windows, strict temporal order
- model: forward() accepts/exposes hidden state h; add step() for single-frame stateful inference
- train: carry detached hidden state across batches, reset at epoch boundary
- benchmark: fix model call for new (v_body, h) return signature

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-07-29 16:32:41 +08:00
parent 5ccd3df874
commit d1d3310543
7 changed files with 422 additions and 23 deletions
+4 -3
View File
@@ -39,7 +39,8 @@ VAL_SCENES = [
# "indoor_forward_3", "indoor_forward_9", "indoor_forward_10", # Easy
]
TEST_SCENES = [
"indoor_forward_9","indoor_forward_3",
"indoor_forward_9",
# "indoor_forward_9","indoor_forward_3",
# "indoor_forward_7", # Hard 室内
# "outdoor_forward_1", # Easy 室外
# "outdoor_forward_5" # Hard 室外
@@ -92,8 +93,8 @@ class ModelConfig:
@dataclass
class TrainConfig:
seq_len: int = 8 # frames per training sequence
batch_size: int = 32
seq_len: int = 128 # frames per training sequence
batch_size: int = 4
epochs: int = 300
lr: float = 1e-3
weight_decay: float = 1e-5