配置

LeRobot 配置是由 draccus 解析的普通 dataclass,因此每个 字段都可以从 CLI 设置。TrainPipelineConfiglerobot-train 的顶层对象。

多态配置(policy、机器人、环境)使用 draccus.ChoiceRegistry:子类通过 @register_subclass("name") 注册 自身,然后就可以在命令行上按该名称选择。

TrainPipelineConfig

class lerobot.configs.train.TrainPipelineConfig

< >

( dataset: DatasetConfigenv: lerobot.envs.configs.EnvConfig | None = Nonepolicy: lerobot.configs.policies.PreTrainedConfig | None = Nonereward_model: lerobot.configs.rewards.RewardModelConfig | None = Noneoutput_dir: pathlib.Path | None = Nonejob_name: str | None = Noneresume: bool = Falseseed: int | None = 1000cudnn_deterministic: bool = Falsenum_workers: int = 4batch_size: int = 8prefetch_factor: int = 4persistent_workers: bool = Truedataloader_multiprocessing_context: str | None = 'spawn'steps: int = 100000env_eval_freq: int = 20000log_freq: int = 200eval_steps: int = 0max_eval_samples: int = 0tolerance_s: float = 0.0001save_checkpoint: bool = Truesave_freq: int = 20000checkpoint_format: CheckpointFormat = <CheckpointFormat.SAFETENSORS: 'safetensors'>use_policy_training_preset: bool = Trueoptimizer: lerobot.optim.optimizers.OptimizerConfig | None = Nonescheduler: lerobot.optim.schedulers.LRSchedulerConfig | None = Noneparallelism: ParallelismConfig = <factory>accelerator: AcceleratorConfig = <factory>eval: EvalConfig = <factory>ema: EMAConfig = <factory>wandb: WandBConfig = <factory>peft: lerobot.configs.default.PeftConfig | None = Nonejob: JobConfig = <factory>save_checkpoint_to_hub: bool = Falsesample_weighting: lerobot.utils.sample_weighting.SampleWeightingConfig | None = Nonerename_map: dict = <factory> )

PreTrainedConfig

class lerobot.configs.PreTrainedConfig

< >

( n_obs_steps: int = 1input_features: dict[str, lerobot.configs.types.PolicyFeature] | None = <factory>output_features: dict[str, lerobot.configs.types.PolicyFeature] | None = <factory>device: str | None = Noneuse_amp: bool = Falseuse_peft: bool = Falsepush_to_hub: bool = Truerepo_id: str | None = Noneprivate: bool | None = Nonetags: list[str] | None = Nonelicense: str | None = Nonepretrained_path: pathlib.Path | None = Nonepretrained_revision: str | None = None )

参数

  • n_obs_steps — 传递给 policy 的 observation 所对应的环境步数(取 当前步及其之前的额外步)。
  • input_features — 定义 policy 输入数据 PolicyFeature 的字典。键表示 输入数据名称,值是 PolicyFeature,由 FeatureType 和 shape 属性组成。
  • output_features — 定义 policy 输出数据 PolicyFeature 的字典。键表示 输出数据名称,值是 PolicyFeature,由 FeatureType 和 shape 属性组成。
  • normalization_mapping — 一个字典,将 FeatureType 的 str 值(例如 “STATE”、“VISUAL”)映射到 相应的 NormalizationMode(例如 NormalizationMode.MIN_MAX)

policy 模型的基类配置类。

DatasetConfig

class lerobot.configs.DatasetConfig

< >

( repo_id: strrepo_type: str = 'dataset'root: str | None = Noneepisodes: list[int] | None = Noneexclude_episodes: list[int] | None = Noneimage_transforms: ImageTransformsConfig = <factory>revision: str | None = Noneuse_imagenet_stats: bool = Truevideo_backend: str = <factory>return_uint8: bool = Falsedepth_output_unit: str = 'mm'streaming: bool = Falseeval_split: float = 0.0 )

EvalConfig

class lerobot.configs.EvalConfig

< >

( n_episodes: int = 50batch_size: int = 0use_async_envs: bool = Truerecording: bool = Falserecording_repo_id: str | None = Nonerecording_private: bool = False )

WandBConfig

class lerobot.configs.WandBConfig

< >

( enable: bool = Falsedisable_artifact: bool = Falseproject: str = 'lerobot'entity: str | None = Nonenotes: str | None = Nonerun_id: str | None = Noneresume: str | None = Nonemode: str | None = Noneconsole: str = 'wrap'console_multipart: bool = Falseconsole_chunk_max_seconds: int = 0add_tags: bool = True )

在 GitHub 上更新