mirror of
https://github.com/huggingface/lerobot.git
synced 2026-07-30 21:19:40 +00:00
6e5f6df6e7
* fix(evo1): re-pad normalizer stats when loading from checkpoint reconcile_evo1_processors did not re-pad the (un)normalizer stats to max_state_dim/max_action_dim on the checkpoint-load path. When lerobot-train loads a checkpoint (e.g. stage2 from a stage1 checkpoint) it injects the raw dataset stats via processor overrides, so LIBERO's 8-dim state stats normalized a 24-dim padded state and crashed with "size of tensor a (24) must match tensor b (8)". Restore _refresh_evo1_normalization_steps (removed in the "remove legacy codepaths" refactor) and call it from reconcile_evo1_processors so the loaded stats/features are re-padded to EVO1's fixed widths. Padding is a no-op when stats are already at the target width. Co-authored-by: Cursor <cursoragent@cursor.com> * test(evo1): cover reconcile re-padding of overridden normalizer stats Regression test for the stage2-from-checkpoint crash: reloading a checkpoint with raw (unpadded) dataset stats injected via processor overrides must be re-padded to max_state_dim/max_action_dim by reconcile_evo1_processors, otherwise normalizing the padded state raises a shape mismatch. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Martino Russi <martino@huggingface.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Steven Palma <imstevenpmwork@ieee.org>