# Configuración

La configuración de LeRobot consiste en dataclasses simples analizadas por [draccus](https://github.com/dlwh/draccus), por lo que cada campo se puede establecer desde la CLI. `TrainPipelineConfig` es el objeto de nivel superior para `lerobot-train`.

Las configuraciones polimórficas (políticas, robots, entornos) utilizan `draccus.ChoiceRegistry`: una subclase se registra a sí misma con `@register_subclass("name")` y luego puede seleccionarse por ese nombre en la línea de comandos.

## TrainPipelineConfig[[lerobot.configs.train.TrainPipelineConfig]]

#### lerobot.configs.train.TrainPipelineConfig[[lerobot.configs.train.TrainPipelineConfig]]

```python
lerobot.configs.train.TrainPipelineConfig(dataset: DatasetConfig, env: lerobot.envs.configs.EnvConfig | None = None, policy: lerobot.configs.policies.PreTrainedConfig | None = None, reward_model: lerobot.configs.rewards.RewardModelConfig | None = None, output_dir: pathlib.Path | None = None, job_name: str | None = None, resume: bool = False, seed: int | None = 1000, cudnn_deterministic: bool = False, tf32: bool | None = True, num_workers: int = 4, batch_size: int = 8, prefetch_factor: int = 4, persistent_workers: bool = True, dataloader_multiprocessing_context: str | None = 'spawn', steps: int = 100000, env_eval_freq: int = 20000, log_freq: int = 200, eval_steps: int = 0, max_eval_samples: int = 0, tolerance_s: float = 0.0001, save_checkpoint: bool = True, save_freq: int = 20000, checkpoint_format: CheckpointFormat = <CheckpointFormat.SAFETENSORS: 'safetensors'>, use_policy_training_preset: bool = True, optimizer: lerobot.optim.optimizers.OptimizerConfig | None = None, scheduler: lerobot.optim.schedulers.LRSchedulerConfig | None = None, parallelism: ParallelismConfig = <factory>, accelerator: AcceleratorConfig = <factory>, eval: EvalConfig = <factory>, ema: lerobot.optim.ema.EMAConfig | None = None, trackio: TrackioConfig = <factory>, peft: lerobot.configs.default.PeftConfig | None = None, job: JobConfig = <factory>, save_checkpoint_to_hub: bool = False, sample_weighting: lerobot.utils.sample_weighting.SampleWeightingConfig | None = None, rename_map: dict = <factory>)
```

[Fuente](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/configs/train.py#L126)

## PreTrainedConfig[[lerobot.configs.PreTrainedConfig]]

#### lerobot.configs.PreTrainedConfig[[lerobot.configs.PreTrainedConfig]]

```python
lerobot.configs.PreTrainedConfig(n_obs_steps: int = 1, input_features: dict[str, lerobot.configs.types.PolicyFeature] | None = <factory>, output_features: dict[str, lerobot.configs.types.PolicyFeature] | None = <factory>, device: str | None = None, dtype: torch.dtype | None = None, use_amp: bool = False, use_peft: bool = False, push_to_hub: bool = True, repo_id: str | None = None, private: bool | None = None, tags: list[str] | None = None, license: str | None = None, pretrained_path: pathlib.Path | None = None, pretrained_revision: str | None = None)
```

[Fuente](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/configs/policies.py#L42)

**Parámetros:**

n_obs_steps : Número de pasos de entorno de observaciones que se pasan a la política (toma el paso actual y pasos adicionales hacia atrás).

input_features : Un diccionario que define la PolicyFeature de los datos de entrada para la política. La clave representa el nombre de los datos de entrada y el valor es PolicyFeature, que consiste en los atributos FeatureType y shape.

output_features : Un diccionario que define la PolicyFeature de los datos de salida para la política. La clave representa el nombre de los datos de salida y el valor es PolicyFeature, que consiste en los atributos FeatureType y shape.

normalization_mapping : Un diccionario que mapea desde un valor str de FeatureType (p. ej., "STATE", "VISUAL") a un NormalizationMode correspondiente (p. ej., NormalizationMode.MIN_MAX)

Clase de configuración base para modelos de política.

## DatasetConfig[[lerobot.configs.DatasetConfig]]

#### lerobot.configs.DatasetConfig[[lerobot.configs.DatasetConfig]]

```python
lerobot.configs.DatasetConfig(repo_id: str, repo_type: str = 'dataset', root: str | None = None, episodes: list[int] | None = None, exclude_episodes: list[int] | None = None, image_transforms: ImageTransformsConfig = <factory>, revision: str | None = None, use_imagenet_stats: bool = True, video_backend: str = <factory>, return_uint8: bool = False, depth_output_unit: str = 'mm', streaming: bool = False, streaming_episode_pool_size: int | None = None, streaming_sampling_strategy: StreamingSamplingStrategy = <StreamingSamplingStrategy.REMAINING: 'remaining'>, streaming_prefetch_episodes: int = 8, streaming_byte_budget_gb: float = 8.0, streaming_decode_threads: int = 2, streaming_decoded_queue_size: int = 8, streaming_native_http_connections: int | None = None, streaming_native_http_subranges: int = 1, streaming_sidecar_lock_timeout_s: float = 1800, video_decoder_cache_size: int | None = None, eval_split: float = 0.0)
```

[Fuente](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/configs/default.py#L30)

## EvalConfig[[lerobot.configs.EvalConfig]]

#### lerobot.configs.EvalConfig[[lerobot.configs.EvalConfig]]

```python
lerobot.configs.EvalConfig(n_episodes: int = 50, batch_size: int = 0, use_async_envs: bool = True, recording: bool = False, recording_repo_id: str | None = None, recording_private: bool = False, max_episode_steps: int | None = None)
```

[Fuente](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/configs/default.py#L169)

## TrackioConfig[[lerobot.configs.TrackioConfig]]

#### lerobot.configs.TrackioConfig[[lerobot.configs.TrackioConfig]]

```python
lerobot.configs.TrackioConfig(enable: bool = False, disable_artifact: bool = True, project: str = 'lerobot', space_id: str | None = None, private: bool | None = None, run_name: str | None = None, resume: str | None = None, capture_console: bool = True)
```

[Fuente](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/configs/default.py#L136)

Seguimiento de ejecuciones de entrenamiento con Trackio (https://huggingface.co/docs/trackio).

Las ejecuciones se almacenan en una base de datos SQLite local en `~/.cache/huggingface/trackio` y se visualizan con `trackio show --project <project>`. Establezca `space_id` para sincronizar la ejecución con un Hugging Face Space en su lugar.

