diff --git a/src/lerobot/datasets/lerobot_dataset.py b/src/lerobot/datasets/lerobot_dataset.py index d0dcf087d..99219783d 100644 --- a/src/lerobot/datasets/lerobot_dataset.py +++ b/src/lerobot/datasets/lerobot_dataset.py @@ -474,6 +474,8 @@ class LeRobotDataset(torch.utils.data.Dataset): if reader.hf_dataset is None: # One-shot load after finalize() reader.load_and_activate() + if reader._absolute_to_relative_idx is not None and idx in reader._absolute_to_relative_idx: + idx = reader._absolute_to_relative_idx[idx] return reader.get_item(idx) def select_columns(self, column_names: str | list[str]): diff --git a/src/lerobot/scripts/lerobot_train.py b/src/lerobot/scripts/lerobot_train.py index 9e4a9a5b5..52fe8737a 100644 --- a/src/lerobot/scripts/lerobot_train.py +++ b/src/lerobot/scripts/lerobot_train.py @@ -435,8 +435,6 @@ def train(cfg: TrainPipelineConfig, accelerator: "Accelerator | None" = None): f"Resuming data order at epoch {sampler_state['epoch']}, " f"sample {sampler_state['start_index']}" ) - if dataset.reader._absolute_to_relative_idx is not None: - sampler.indices = [dataset.reader._absolute_to_relative_idx[i] for i in sampler.indices] else: shuffle = True sampler = None