数据集的归一化统计信息算子
数据集的归一化统计信息算子用于计算数据集中关键特征(action和state)的统计信息(均值、方差等),并将原始数据集复制到目标位置,同时保存这些统计信息供后续训练直接使用。
- 核心能力:
- 数据集验证:检查是否为合法的LeRobot V3格式。
- 自动字段适配:如果缺少action字段,自动添加映射。
- 统计量计算:计算state和action的均值、方差等统计信息。
- 数据集复制:完整复制源数据集到目标位置。
- 统计量持久化:将统计结果保存为标准化参数文件。
- 输入:LeRobot V3格式数据集目录。
- 输出:包含norm_stats的LeRobot V3格式数据集目录。
delta动作模式训练参数:
当使用delta动作模式进行训练时,需要配置以下环境变量或参数:
- DELTA_ACTION_MASK_ARGS:环境变量
- 值为"None"或空时:不开启delta模式,使用绝对动作表示
- 值为逗号分隔的整数时:开启delta模式,如6,-1或6,-1,6,-1
DELTA_ACTION_MASK_ARGS配置详解:
该参数用于生成布尔掩码(boolean mask),控制每个动作维度的表示方式:
- 正整数N:表示连续N个维度使用delta(相对变化)表示,生成N个True值
- 负整数-N:表示连续N个维度使用absolute(绝对值)表示,生成N个False值
配置示例:
- 例1: 6,-1(7维动作空间)
- 6:前6个维度为True(delta模式,如机械臂6个关节的相对角度变化)
- -1:后1个维度为False(absolute模式,如夹爪的绝对开合状态)
- 生成的掩码:[True, True, True, True, True, True, False]
- 适用场景:7自由度机械臂(6个旋转关节 + 1个夹爪)
- 例2: 6,-1,6,-1(14维动作空间)
- 6:前6个维度为True(delta模式)
- -1:第7个维度为False(absolute模式)
- 6:后6个维度为True(delta模式)
- -1:最后1个维度为False(absolute模式)
- 生成的掩码:[True, True, True, True, True, True, False, True, True, True, True, True, True, False]
- 适用场景:双臂机器人或需要更复杂动作表示的场景
输入说明
支持LeRobot V3格式数据集,若输入为不符合要求的数据集则运行时会报错。
输入数据集目录结构
<dataset_dir>/ # 输入路径(V3 数据集根目录)
├── data/
└── chunk-000/
├── episode_000000.parquet # 轨迹数据
├── episode_000001.parquet
└── ...
├── meta/
├── info.json # 数据集基本信息(版本、帧率等)
├── stats.jsonl # 数据统计信息
├── tasks.parquet # 任务定义
└── episodes/ # Episode 元信息目录
└── videos/ # 视频数据
├── observation.images.front/
├── observation.images.wrist_left/
└── observation.images.wrist_right/ 输出说明
根据输入数据集目录层级生成同目录结构的输出包含norm_stats的LeRobot V3格式数据集。
输出目录结构
包含norm_stats的LeRobot V3格式数据集:
<output_dir>/<key>/
├── data/
└── chunk-000/
├── episode_000000.parquet # 轨迹数据
├── episode_000001.parquet
└── ...
├── meta/
├── info.json # 数据集基本信息(版本、帧率等)
├── stats.jsonl # 数据统计信息
├── tasks.parquet # 任务定义
└── episodes/ # Episode 元信息目录
├── cloudrobo/
└── dataset-0/
└── norm_stats.json # 统计信息
└── videos/ # 视频数据
├── observation.images.front/
├── observation.images.wrist_left/
└── observation.images.wrist_right/