#750·openpi

为什么 'pi0_libero' 配置中 extra_delta_action 设置为 True?

作者: PuzhenYuan创建于 2025年10月27日更新于 2026年9月15日

In class LeRobotLiberoDataConfig from src/openpi/training/config.py: # One additional data transform: pi0 models are trained on delta actions (relative to the first # state in each action chunk). IF your data has absolute actions (e.g. target joint angles) # you can uncomment the following line to convert the actions to delta actions. The only exception # is for the gripper actions which are always absolute. # In the example below, we would apply the delta conversion to the first 6 actions (joints) and # leave the 7th action (gripper) unchanged, i.e. absolute. # In Libero, the raw actions in the dataset are already delta actions, so we do not need to # apply a separate delta conversion (that's why it's commented out). Choose whether to apply this # transform based on whether your dataset uses absolute or delta actions out of the box. # LIBERO already represents actions as deltas, but we have some old Pi0 checkpoints that are trained with this # extra delta transform. if self.extra_delta_transform: delta_action_mask = _transforms.make_bool_mask(6, -1) data_transforms = data_transforms.push( inputs=[_transforms.DeltaActions(delta_action_mask)], outputs=[_transforms.AbsoluteActions(delta_action_mask)], ) In the pi0_libero train config, extra_delta_action=True:

TrainConfig( # Change the name to reflect your model and dataset. name="pi0_libero", # Here you define the model config -- In this example we use pi0 as the model architecture and perform full finetuning. in the examples below we show how to modify # this to perform low-memory (LORA) finetuning and use pi0-FAST as an alternative architecture. model=pi0_config.Pi0Config(), # Here you define the dataset you are training on. In this example we use the Libero dataset. For your own dataset, you can change the repo_id to point to your dataset. # Also modify the DataConfig to use the new config you made for your dataset above. data=LeRobotLiberoDataConfig( repo_id="physical-intelligence/libero", base_config=DataConfig( # This flag determines whether we load the prompt (i.e. the task instruction) from the # task field in the LeRobot dataset. If set to True, the prompt will show up in # a field called prompt in the input dict. The recommended setting is True. prompt_from_task=True, ), extra_delta_transform=True, ), # Here you define which pre-trained checkpoint you want to load to initialize the model. # This should match the model config you chose above -- i.e. in this case we use the pi0 base model. …

内容来源: Physical-Intelligence/openpi