DVLT depth-scale unfreeze ablation checkpoints
Event-distillation checkpoints from docs/UNFREEZE_DEPTHSCALE_PLAN.md /
docs/PATCHWISE_DEPTHSCALE_PLAN.md in nvidia/dvlt-derived
event-distillation experiments. Unless noted otherwise, every arm below is
event_block_final.pth, 20,000 training steps, --mode lora_block --lora_rank 16 --lora_depth 12 --event_repr heuristic --clip_len_min 2 --clip_len_max 18 --seed 1, EventScape train split, same recipe across all arms except the
flags noted per arm.
Load with torch.load(path, map_location=..., weights_only=False) β each
checkpoint is a dict with student_trainable, channel_mixer, and (where
applicable) depthscale_head / frame_depthscale_head state dicts, plus
step/args/optimizer/scheduler state. See scripts/event_distill/model.py
(build_teacher_student, install_depthscale_head, install_frame_head) in
the dvlt repo for how to reconstruct the student model and load these.
EventScape-trained arms
| file | arm | --depthscale_mode |
--unfreeze_depth_scale |
--depthscale_extend_frame_attn |
|---|---|---|---|---|
baseline.pth |
baseline | none | no | no |
baseline_seed1.pth |
baseline_seed1 (older, fixed clip_len=2, not the varlen recipe) |
none | no | no |
gatedmult_freefree.pth |
gatedmult_freefree | density_gatedmult_freefree_patch |
no | no |
gatedmult_all_freefree.pth |
gatedmult_all_freefree | density_gatedmult_all_freefree_patch |
no | no |
timescore_free.pth |
timescore_free | density_timescore_free_patch |
no | no |
fused_free.pth |
fused_free | density_fused_free_patch |
no | no |
unfreezeds_stage1.pth |
unfreezeds_stage1 | none | yes | no |
unfreezeds_stage2_joint.pth |
unfreezeds_stage2_joint | density_gatedmult_freefree_patch |
yes | yes |
fusedfree_unfreezeds.pth |
fusedfree_unfreezeds | density_fused_free_patch |
yes | no |
gatedmultallfree_unfreezeds.pth |
gatedmultallfree_unfreezeds | density_gatedmult_all_freefree_patch |
yes | no |
globalonly_unfreezeds.pth |
globalonly_unfreezeds (Arm B: schedule only, plain head) | density_gatedmult_freefree_patch |
yes | no |
fusedallfree_unfreezeds.pth |
fusedallfree_unfreezeds (fused_free extended to also touch s_out) |
density_fused_all_free_patch |
yes | no |
More arms (gatedmultallfree_frameext_unfreezeds, fusedwarmtrunk_unfreezeds,
and channelwise _all variants) exist locally and will be added as they clear
evaluation; see docs/UNFREEZE_DEPTHSCALE_PLAN.md for the full, current arm
list and status.
MVSEC-day1 real-data continuations
Each of these resumes training from the matching EventScape checkpoint above
(same run, --resume <arm>/event_block_final.pth) for one additional epoch
(step 20000 β 25124, or 6000 β 11124 for baseline_seed1) on real MVSEC
mvsec_outdoor_day1 event data (--train_data mvsec --mvsec_train_seqs mvsec_outdoor_day1), holding out mvsec_outdoor_night1/2/3 for validation.
Same --depthscale_mode/--unfreeze_depth_scale as their parent arm.
| file | distilled from |
|---|---|
baseline_seed1_mvsec_day1.pth |
baseline_seed1.pth |
fusedfree_unfreezeds_mvsec_day1.pth |
fusedfree_unfreezeds.pth |
gatedmultallfree_unfreezeds_mvsec_day1.pth |
gatedmultallfree_unfreezeds.pth |
globalonly_unfreezeds_mvsec_day1.pth |
globalonly_unfreezeds.pth |
unfreezeds_stage1_mvsec_day1.pth |
unfreezeds_stage1.pth |
fusedallfree_unfreezeds_mvsec_day1.pth |
fusedallfree_unfreezeds.pth |
A matched baseline.pth β baseline_mvsec_day1.pth continuation (using the
current varlen baseline rather than the older baseline_seed1) is training
and will be added once finished.
Notable MVSEC result: on real held-out MVSEC night data, every one of
these event-input students already beats the RGB teacher on Delta1/Delta2/
Delta3 zero-shot (no MVSEC exposure at all), and after just this one epoch of
real day1 adaptation, every arm surpasses the RGB teacher on AbsRel too β not
just the ratio metrics. Consistent with events' physical advantage over RGB
in low light. See docs/UNFREEZE_DEPTHSCALE_PLAN.md for full numbers and the
caveat that different eval batches used different effective clip samples
(different teacher-ceiling baselines), so cross-batch absolute numbers aren't
directly comparable β the "beats teacher" pattern itself reproduces
independently across both batches, though.
Headline result (exhaustive EventScape test split, 1368 clips, clip_len=18)
Every arm with --unfreeze_depth_scale beats every frozen-schedule arm on
depth AbsRel, cleanly β the accuracy gain is well-powered (1368 clips, not a
small subsample) and isolated specifically to the unfrozen schedule, not
confounded with the frame-attention extension (a separate sub-stage ablation
disentangles the two: see the doc). Within the unfrozen arms,
fusedfree_unfreezeds and gatedmultallfree_frameext_unfreezeds are close
co-leaders across Delta1/ATE/pointmap accuracy; fusedallfree_unfreezeds is
the strongest on zero-shot MVSEC generalization specifically. See
docs/UNFREEZE_DEPTHSCALE_PLAN.md in the dvlt repo for full results,
methodology, and caveats (single seed, not yet reseeded β the spread among
top arms is within plausible single-seed noise).