From c16ac800636918bb08038e1fd17c5b5cab754444 Mon Sep 17 00:00:00 2001 From: Steven Palma Date: Mon, 20 Apr 2026 20:00:50 +0200 Subject: [PATCH] processor debug --- src/lerobot/rollout/context.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/lerobot/rollout/context.py b/src/lerobot/rollout/context.py index bf5361945..e44b5f5bf 100644 --- a/src/lerobot/rollout/context.py +++ b/src/lerobot/rollout/context.py @@ -422,6 +422,22 @@ def build_rollout_context( }, ) + # --- Debug: verify normalizer stats loaded from pretrained --- + from lerobot.processor import NormalizerProcessorStep, UnnormalizerProcessorStep + + for step in preprocessor.steps: + if isinstance(step, NormalizerProcessorStep): + n_stats = sum(len(v) for v in step._tensor_stats.values()) if step._tensor_stats else 0 + logger.info("Preprocessor normalizer: %d stat tensors, keys=%s", n_stats, list(step._tensor_stats.keys())[:3]) + if n_stats == 0: + logger.error("PREPROCESSOR NORMALIZER HAS NO STATS — observations will NOT be normalized!") + for step in postprocessor.steps: + if isinstance(step, UnnormalizerProcessorStep): + n_stats = sum(len(v) for v in step._tensor_stats.values()) if step._tensor_stats else 0 + logger.info("Postprocessor unnormalizer: %d stat tensors, keys=%s", n_stats, list(step._tensor_stats.keys())[:3]) + if n_stats == 0: + logger.error("POSTPROCESSOR UNNORMALIZER HAS NO STATS — actions will NOT be denormalized!") + # --- 7. Inference strategy (needs policy + pre/post + hardware) -- logger.info( "Creating inference engine (type=%s)...",