SuperAPI AI 工具集

physicalai-train-working-with-datasets

数据与分析

查看项目

更新于 10-16 07:26

技能介绍

用途:在 Physical AI Studio 中处理数据集与 Lightning 数据模块。Studio 数据位于 library/src/physicalai/data/,采用 LeRobot 格式,通过 Lightning datamodule 消费;datamodule 是一等 Python API 对象,YAML/CLI 配置只是同一构造路径的序列化。

主要模块:data/lerobot/datamodule.py 提供 LeRobotDataModule(配置中引用为 physicalai.data.lerobot.LeRobotDataModule);data/lerobot/dataset.py 为 LeRobot 数据集封装;data/lerobot/converters.py 定义 DataFormat(StrEnum:physicalai、lerobot)及两种布局的双向字段映射;data/observation.py 含 Observation、Feature、FeatureType、NormalizationParameters;data/datamodules.py 为基础 DataModule(LightningDataModule,自动 num-workers 启发式);data/dataset.py 为基础 Dataset,data/gym.py 为 GymDataset。

Python API 用法:适合 notebook、测试、直接检查批次或调试数据加载。示例:from physicalai.data import LeRobotDataModule;datamodule = LeRobotDataModule(repo_id="lerobot/pusht", train_batch_size=2);随后 prepare_data()、setup("fit"),再取 train_dataloader() 的下一批。完成标准是批次含策略期望的 observation/action 字段及正确维度。

接入训练配置:在 physicalai fit 配置的 data 块中指定 class_path 与 repo_id,例如 class_path: physicalai.data.lerobot.LeRobotDataModule,init_args 中 repo_id: lerobot/pusht、train_batch_size: 64。repo_id 指向 LeRobot/HuggingFace 数据集,首次使用时拉取。

工作流:按 repo_id 选数据集并确认特征(图像键、状态维、动作维)与目标策略 Config 匹配;训练前用 Python API 验证批次;YAML 配置时用 physicalai fit --config <config.yaml> --trainer.fast_dev_run=true 验证 CLI 一致性;仅在需要时用 converters.py 转换布局,保持字段名稳定;通过 NormalizationParameters/Feature 设置归一化。

调试:特征缺失或改名说明配置特征与策略不一致;首批缓慢通常是 repo_id 正在下载;批次维度错误先检查 train_batch_size 与 collate/observation 处理。

必要检查:特征名、FeatureType、动作维与归一化在数据集、Config 及导出元数据间一致;转换可往返不丢字段;直接 API 与 YAML 构造产生兼容批次;需下载的测试标记 requires_download,默认 uv run pytest 可离线运行。验证命令:uv run pytest tests/unit/data tests/unit/datamodules(在 library/ 下)。相关技能:physicalai-train-training-a-policy、physicalai-train-adding-a-policy。