Understanding the Pipeline
A processor pipeline is a sequence ofProcessorStep objects that transform data:
lerobot/processor/pipeline.py:254 for the full DataProcessorPipeline implementation.
Step-Through Debugging
Usestep_through() to inspect data after each processing step:
Custom Hooks
Add hooks to inspect or modify data at specific pipeline stages:Inspecting Feature Transformations
Track how data shapes and types change through the pipeline:Debugging Normalization
Inspect normalization statistics:Debugging Device Placement
Verify tensors are on correct devices:Saving Pipeline State
Save pipeline configuration and state for debugging:Common Issues and Solutions
Issue: NaN Values After Normalization
Cause: Division by zero when std is 0 Solution: Check normalization stats:Issue: Device Mismatch Errors
Cause: Tensors on different devices Solution: Add device processor early in pipeline:Issue: Shape Mismatches
Cause: Step expecting different input shape Solution: Usetransform_features() to verify:
Debugging Custom Processors
Add debug output to custom processor steps:Performance Profiling
Measure time spent in each step:API Reference
DataProcessorPipeline
Seelerobot/processor/pipeline.py:254
(data) -> Iterable[EnvTransition]
Yield intermediate states after each processing step
(data) -> Any
Process data through full pipeline
(path) -> None
Save pipeline configuration and state
ProcessorStep
Seelerobot/processor/pipeline.py:143
(features) -> dict
Transform feature descriptions without processing actual data
() -> dict
Return processor state (e.g., normalization stats)
(state) -> None
Load processor state from dictionary