feat: replace non-overlapping windows with sliding-window sequence sampling

- Remove sample-level shuffle before transforms (broke SimulateEvents)
- Add _sliding_window_fn: yields overlapping sequences with configurable stride
- Add sequence-level shuffle after grouping (preserves temporal coherence)
- Add sliding_window_stride to TrainConfig (stride=1 for full overlap)
- Update create_train/val_loader and train.py to pass stride
- AGENTS.md: document known issues (cross-shard boundary, SimulateEvents state)
- AGENTS.md: add cuda:7 device preference

Generated by Mistral Vibe (deepseek-v4-flash).
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-06-05 16:45:24 +08:00
parent ec143868d0
commit cb9936542e
4 changed files with 70 additions and 17 deletions
+6 -2
View File
@@ -39,10 +39,11 @@ VAL_SCENES = [
# "indoor_forward_3", "indoor_forward_9", "indoor_forward_10", # Easy
]
TEST_SCENES = [
"indoor_forward_9","indoor_forward_3",
# "indoor_forward_7", # Hard 室内
# "outdoor_forward_1", # Easy 室外
# "outdoor_forward_5" # Hard 室外
"indoor_forward_3", "indoor_forward_9", "indoor_forward_10", # Easy
# "indoor_forward_3", "indoor_forward_9", "indoor_forward_10", # Easy
]
@@ -93,7 +94,7 @@ class ModelConfig:
class TrainConfig:
seq_len: int = 8 # frames per training sequence
batch_size: int = 32
epochs: int = 100
epochs: int = 300
lr: float = 1e-3
weight_decay: float = 1e-5
lr_scheduler_step: int = 30
@@ -101,6 +102,9 @@ class TrainConfig:
num_workers: int = 4
seed: int = 42
# Sliding window: stride=1 → full overlap, stride=seq_len → non-overlapping
sliding_window_stride: int = 1
# Event simulation
event_threshold: float = 0.1
event_use_log: bool = True