diff --git a/src/lerobot/configs/default.py b/src/lerobot/configs/default.py index 1fcd8d508..26966e71f 100644 --- a/src/lerobot/configs/default.py +++ b/src/lerobot/configs/default.py @@ -43,6 +43,8 @@ class DatasetConfig: eval_split: float = 0.0 def __post_init__(self) -> None: + if not (0.0 <= self.eval_split < 1.0): + raise ValueError(f"eval_split must be in [0.0, 1.0), got {self.eval_split}") if self.episodes is not None: if any(ep < 0 for ep in self.episodes): raise ValueError( diff --git a/src/lerobot/configs/train.py b/src/lerobot/configs/train.py index 5b847f700..00fbe81b2 100644 --- a/src/lerobot/configs/train.py +++ b/src/lerobot/configs/train.py @@ -213,6 +213,9 @@ class TrainPipelineConfig(HubMixin): self.optimizer = active_cfg.get_optimizer_preset() self.scheduler = active_cfg.get_scheduler_preset() + if self.eval_steps > 0 and self.dataset.eval_split == 0.0: + raise ValueError("eval_steps > 0 requires dataset.eval_split > 0.0 to hold out eval data.") + if hasattr(active_cfg, "push_to_hub") and active_cfg.push_to_hub and not active_cfg.repo_id: raise ValueError("'repo_id' argument missing. Please specify it to push the model to the hub.")