feat(streampetr): harden the streaming training infrastructure - #3
Draft
vividf wants to merge 1 commit into
Draft
Conversation
vividf
force-pushed
the
feat/streampetr-training-infra
branch
from
September 2, 2026 08:43
ce301f5 to
6579398
Compare
vividf
changed the base branch from
feat/streampetr-core
to
feat/streampetr-base-configs
September 2, 2026 08:43
vividf
force-pushed
the
feat/streampetr-base-configs
branch
from
September 2, 2026 08:57
76d282b to
e74d99d
Compare
vividf
force-pushed
the
feat/streampetr-training-infra
branch
from
September 2, 2026 08:57
6579398 to
57c4562
Compare
vividf
force-pushed
the
feat/streampetr-base-configs
branch
from
September 2, 2026 09:31
e74d99d to
edddb29
Compare
vividf
force-pushed
the
feat/streampetr-training-infra
branch
from
September 2, 2026 09:31
57c4562 to
428e760
Compare
vividf
force-pushed
the
feat/streampetr-base-configs
branch
from
September 2, 2026 21:02
edddb29 to
45c00fa
Compare
vividf
force-pushed
the
feat/streampetr-training-infra
branch
from
September 2, 2026 21:02
428e760 to
2228774
Compare
vividf
marked this pull request as draft
September 3, 2026 17:24
vividf
force-pushed
the
feat/streampetr-base-configs
branch
from
September 4, 2026 06:24
45c00fa to
a326226
Compare
vividf
force-pushed
the
feat/streampetr-training-infra
branch
2 times, most recently
from
September 4, 2026 07:29
4a2e1bf to
5af526a
Compare
vividf
force-pushed
the
feat/streampetr-base-configs
branch
from
September 4, 2026 07:29
a326226 to
16e5c4b
Compare
This was referenced Sep 4, 2026
Partial-annotation status plumbed through the multiview datasets, scene contiguity validated at load time, shared-tensor-aware checkpoint loading, epoch-end validation for variable-length streaming samplers, and the iteration-warmup epoch-cosine LR schedule. Signed-off-by: vividf <yihsiang.fang@tier4.jp>
vividf
force-pushed
the
feat/streampetr-base-configs
branch
from
September 4, 2026 08:00
16e5c4b to
c53556a
Compare
vividf
force-pushed
the
feat/streampetr-training-infra
branch
from
September 4, 2026 08:00
5af526a to
7a02cde
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Hardens the training infrastructure that the production StreamPETR recipes rely on. Four independent pieces, grouped because they are all training-loop plumbing.
Changes
datamodule/common/multiview_detection3d.py+ subclasses): a configurableannotation_status_fieldnames the per-frame annotation-completeness field in the info files; samples expose it under the genericannotation_statuskey. Nothing dataset-specific is hardcoded in the shared layer, and datasets without the field emit no key at all.prev_existsis derived from file-order adjacency, so an annotation file that interleaves scenes would silently reset temporal memory mid-scene — dataset construction now fails loudly instead.utils/checkpoints.py): shared-tensor alias detection (identity by storage) so modules registered twice — e.g. a backbone reachable both directly and through a feature extractor — pass full-coverage checks; shape mismatches still refuse to load with a per-key report.utils/lightning_loops.py): Lightning derivesval_check_batchonce from the dataloader length at setup; variable-length samplers (the streaming sampler trims differently per epoch) make shorter epochs silently skip validation, feeding stale metrics to the checkpoint monitor. The override triggers validation on the true last batch of a due epoch. Step-based validation configs (check_val_every_n_epoch=None) are left untouched. A canary test signals when the upstream fix lands so the workaround can be retired.IterWarmupEpochCosineLR: 500-iteration linear warmup multiplied by per-epoch cosine decay (the mmengine chained-scheduler recipe). Closed-form over the step counter, so checkpoint resume replays the original schedule even when the framework re-estimatestotal_steps; covered by a resume-trajectory test.Testing
Unit tests for every piece (serialization dtype round-trips, contiguity guard, alias loading, loop behavior incl. the upstream canary, scheduler shape/boundary/resume). Full suite green at this commit.
Stack 5/8 — base:
feat/streampetr-base-configs.