rlu_locomotion

  • 説明:

RL Unplugged は、オフライン強化学習のベンチマーク スイートです。 RL Unplugged は、次の考慮事項に基づいて設計されています。使いやすさを促進するために、一般的なパイプラインが確立されると、実践者がスイート内のすべてのデータを簡単に操作できるようにする統合 API をデータセットに提供します。

データセットはRLDS 形式に従って、ステップとエピソードを表します。

これらのタスクは、CMU ヒューマノイドが関与する回廊移動タスクで構成されており、以前の取り組みでは、モーション キャプチャ データを使用したMerel et al., 2019aMerel et al., 2019b 、またはゼロからのトレーニングSong et al., 2020 が使用されています。さらに、DM Locomotion リポジトリには、仮想齧歯動物に適した一連のタスクが含まれています。 Merel et al., 2020 . DM ロコモーション タスクは、挑戦的な高 DoF 連続制御と、豊富な自己中心的観察からの知覚の組み合わせを特徴としていることを強調します。データセットの生成方法の詳細については、論文を参照してください。

継続的なアクション空間を持つ非常に挑戦的なオフライン RL データセットに興味がある場合は、DeepMind Locomotion データセットでオフライン RL メソッドを試すことをお勧めします。

@inproceedings{gulcehre2020rl,
 title = {RL Unplugged: A Suite of Benchmarks for Offline Reinforcement Learning},
 author = {Gulcehre, Caglar and Wang, Ziyu and Novikov, Alexander and Paine, Thomas and G'{o}mez, Sergio and Zolna, Konrad and Agarwal, Rishabh and Merel, Josh S and Mankowitz, Daniel J and Paduraru, Cosmin and Dulac-Arnold, Gabriel and Li, Jerry and Norouzi, Mohammad and Hoffman, Matthew and Heess, Nicolas and de Freitas, Nando},
 booktitle = {Advances in Neural Information Processing Systems},
 pages = {7248--7259},
 volume = {33},
 year = {2020}
}

rlu_locomotion/humanoid_corridor (デフォルト設定)

  • データセットサイズ: 1.88 GiB

  • 分割:

スプリット
'train' 4,000
  • 機能構造:
FeaturesDict({
    'episode_id': int64,
    'steps': Dataset({
        'action': Tensor(shape=(56,), dtype=float32),
        'discount': float32,
        'is_first': bool,
        'is_last': bool,
        'is_terminal': bool,
        'observation': FeaturesDict({
            'walker': FeaturesDict({
                'body_height': Tensor(shape=(1,), dtype=float32),
                'egocentric_camera': Image(shape=(64, 64, 3), dtype=uint8),
                'end_effectors_pos': Tensor(shape=(12,), dtype=float32),
                'joints_pos': Tensor(shape=(56,), dtype=float32),
                'joints_vel': Tensor(shape=(56,), dtype=float32),
                'sensors_accelerometer': Tensor(shape=(3,), dtype=float32),
                'sensors_gyro': Tensor(shape=(3,), dtype=float32),
                'sensors_velocimeter': Tensor(shape=(3,), dtype=float32),
                'world_zaxis': Tensor(shape=(3,), dtype=float32),
            }),
        }),
        'reward': float32,
    }),
    'timestamp': int64,
})
  • 機能のドキュメント:
特徴クラスDtype説明
特徴辞書
episode_idテンソルint64
ステップデータセット
ステップ/アクションテンソル(56) float32
ステップ/割引テンソルfloat32
ステップ/is_firstテンソルブール
ステップ/is_lastテンソルブール
ステップ/is_terminalテンソルブール
ステップ/観察特徴辞書
歩数/観察/歩行者特徴辞書
ステップ/観察/ウォーカー/body_heightテンソル(1) float32
ステップ/観察/ウォーカー/エゴセントリック_カメラ画像(64, 64, 3) uint8
ステップ/観察/ウォーカー/end_effectors_posテンソル(12) float32
steps/observation/walker/joints_posテンソル(56) float32
steps/observation/walker/joints_velテンソル(56) float32
steps/observation/walker/sensors_accelerometerテンソル(3) float32
steps/observation/walker/sensors_gyroテンソル(3) float32
steps/observation/walker/sensors_velocimeterテンソル(3) float32
ステップ/観察/ウォーカー/world_zaxisテンソル(3) float32
ステップ/報酬テンソルfloat32
タイムスタンプテンソルint64

rlu_locomotion/humanoid_gaps

  • データセットサイズ: 4.57 GiB

  • 分割:

スプリット
'train' 8,000
  • 機能構造:
FeaturesDict({
    'episode_id': int64,
    'steps': Dataset({
        'action': Tensor(shape=(56,), dtype=float32),
        'discount': float32,
        'is_first': bool,
        'is_last': bool,
        'is_terminal': bool,
        'observation': FeaturesDict({
            'walker': FeaturesDict({
                'body_height': Tensor(shape=(1,), dtype=float32),
                'egocentric_camera': Image(shape=(64, 64, 3), dtype=uint8),
                'end_effectors_pos': Tensor(shape=(12,), dtype=float32),
                'joints_pos': Tensor(shape=(56,), dtype=float32),
                'joints_vel': Tensor(shape=(56,), dtype=float32),
                'sensors_accelerometer': Tensor(shape=(3,), dtype=float32),
                'sensors_gyro': Tensor(shape=(3,), dtype=float32),
                'sensors_velocimeter': Tensor(shape=(3,), dtype=float32),
                'world_zaxis': Tensor(shape=(3,), dtype=float32),
            }),
        }),
        'reward': float32,
    }),
    'timestamp': int64,
})
  • 機能のドキュメント:
特徴クラスDtype説明
特徴辞書
episode_idテンソルint64
ステップデータセット
ステップ/アクションテンソル(56) float32
ステップ/割引テンソルfloat32
ステップ/is_firstテンソルブール
ステップ/is_lastテンソルブール
ステップ/is_terminalテンソルブール
ステップ/観察特徴辞書
歩数/観察/歩行者特徴辞書
ステップ/観察/ウォーカー/body_heightテンソル(1) float32
ステップ/観察/ウォーカー/エゴセントリック_カメラ画像(64, 64, 3) uint8
ステップ/観察/ウォーカー/end_effectors_posテンソル(12) float32
steps/observation/walker/joints_posテンソル(56) float32
steps/observation/walker/joints_velテンソル(56) float32
steps/observation/walker/sensors_accelerometerテンソル(3) float32
steps/observation/walker/sensors_gyroテンソル(3) float32
steps/observation/walker/sensors_velocimeterテンソル(3) float32
ステップ/観察/ウォーカー/world_zaxisテンソル(3) float32
ステップ/報酬テンソルfloat32
タイムスタンプテンソルint64

rlu_locomotion/humanoid_walls

  • データセットサイズ: 2.36 GiB

  • 分割:

スプリット
'train' 4,000
  • 機能構造:
FeaturesDict({
    'episode_id': int64,
    'steps': Dataset({
        'action': Tensor(shape=(56,), dtype=float32),
        'discount': float32,
        'is_first': bool,
        'is_last': bool,
        'is_terminal': bool,
        'observation': FeaturesDict({
            'walker': FeaturesDict({
                'body_height': Tensor(shape=(1,), dtype=float32),
                'egocentric_camera': Image(shape=(64, 64, 3), dtype=uint8),
                'end_effectors_pos': Tensor(shape=(12,), dtype=float32),
                'joints_pos': Tensor(shape=(56,), dtype=float32),
                'joints_vel': Tensor(shape=(56,), dtype=float32),
                'sensors_accelerometer': Tensor(shape=(3,), dtype=float32),
                'sensors_gyro': Tensor(shape=(3,), dtype=float32),
                'sensors_velocimeter': Tensor(shape=(3,), dtype=float32),
                'world_zaxis': Tensor(shape=(3,), dtype=float32),
            }),
        }),
        'reward': float32,
    }),
    'timestamp': int64,
})
  • 機能のドキュメント:
特徴クラスDtype説明
特徴辞書
episode_idテンソルint64
ステップデータセット
ステップ/アクションテンソル(56) float32
ステップ/割引テンソルfloat32
ステップ/is_firstテンソルブール
ステップ/is_lastテンソルブール
ステップ/is_terminalテンソルブール
ステップ/観察特徴辞書
歩数/観察/歩行者特徴辞書
ステップ/観察/ウォーカー/body_heightテンソル(1) float32
ステップ/観察/ウォーカー/エゴセントリック_カメラ画像(64, 64, 3) uint8
ステップ/観察/ウォーカー/end_effectors_posテンソル(12) float32
steps/observation/walker/joints_posテンソル(56) float32
steps/observation/walker/joints_velテンソル(56) float32
steps/observation/walker/sensors_accelerometerテンソル(3) float32
steps/observation/walker/sensors_gyroテンソル(3) float32
steps/observation/walker/sensors_velocimeterテンソル(3) float32
ステップ/観察/ウォーカー/world_zaxisテンソル(3) float32
ステップ/報酬テンソルfloat32
タイムスタンプテンソルint64

rlu_locomotion/rodent_bowl_escape

  • データセットサイズ: 16.46 GiB

  • 分割:

スプリット
'train' 2,000
  • 機能構造:
FeaturesDict({
    'episode_id': int64,
    'steps': Dataset({
        'action': Tensor(shape=(38,), dtype=float32),
        'discount': float32,
        'is_first': bool,
        'is_last': bool,
        'is_terminal': bool,
        'observation': FeaturesDict({
            'walker': FeaturesDict({
                'appendages_pos': Tensor(shape=(15,), dtype=float32),
                'egocentric_camera': Image(shape=(64, 64, 3), dtype=uint8),
                'joints_pos': Tensor(shape=(30,), dtype=float32),
                'joints_vel': Tensor(shape=(30,), dtype=float32),
                'sensors_accelerometer': Tensor(shape=(3,), dtype=float32),
                'sensors_gyro': Tensor(shape=(3,), dtype=float32),
                'sensors_touch': Tensor(shape=(4,), dtype=float32),
                'sensors_velocimeter': Tensor(shape=(3,), dtype=float32),
                'tendons_pos': Tensor(shape=(8,), dtype=float32),
                'tendons_vel': Tensor(shape=(8,), dtype=float32),
                'world_zaxis': Tensor(shape=(3,), dtype=float32),
            }),
        }),
        'reward': float32,
    }),
    'timestamp': int64,
})
  • 機能のドキュメント:
特徴クラスDtype説明
特徴辞書
episode_idテンソルint64
ステップデータセット
ステップ/アクションテンソル(38) float32
ステップ/割引テンソルfloat32
ステップ/is_firstテンソルブール
ステップ/is_lastテンソルブール
ステップ/is_terminalテンソルブール
ステップ/観察特徴辞書
歩数/観察/歩行者特徴辞書
ステップ/観察/ウォーカー/appendages_posテンソル(15) float32
ステップ/観察/ウォーカー/エゴセントリック_カメラ画像(64, 64, 3) uint8
steps/observation/walker/joints_posテンソル(30,) float32
steps/observation/walker/joints_velテンソル(30,) float32
steps/observation/walker/sensors_accelerometerテンソル(3) float32
steps/observation/walker/sensors_gyroテンソル(3) float32
ステップ/観察/ウォーカー/sensors_touchテンソル(4) float32
steps/observation/walker/sensors_velocimeterテンソル(3) float32
steps/observation/walker/tendons_posテンソル(8) float32
steps/observation/walker/tendons_velテンソル(8) float32
ステップ/観察/ウォーカー/world_zaxisテンソル(3) float32
ステップ/報酬テンソルfloat32
タイムスタンプテンソルint64

rlu_locomotion/rodent_gaps

  • データセットサイズ: 8.90 GiB

  • 分割:

スプリット
'train' 2,000
  • 機能構造:
FeaturesDict({
    'episode_id': int64,
    'steps': Dataset({
        'action': Tensor(shape=(38,), dtype=float32),
        'discount': float32,
        'is_first': bool,
        'is_last': bool,
        'is_terminal': bool,
        'observation': FeaturesDict({
            'walker': FeaturesDict({
                'appendages_pos': Tensor(shape=(15,), dtype=float32),
                'egocentric_camera': Image(shape=(64, 64, 3), dtype=uint8),
                'joints_pos': Tensor(shape=(30,), dtype=float32),
                'joints_vel': Tensor(shape=(30,), dtype=float32),
                'sensors_accelerometer': Tensor(shape=(3,), dtype=float32),
                'sensors_gyro': Tensor(shape=(3,), dtype=float32),
                'sensors_touch': Tensor(shape=(4,), dtype=float32),
                'sensors_velocimeter': Tensor(shape=(3,), dtype=float32),
                'tendons_pos': Tensor(shape=(8,), dtype=float32),
                'tendons_vel': Tensor(shape=(8,), dtype=float32),
                'world_zaxis': Tensor(shape=(3,), dtype=float32),
            }),
        }),
        'reward': float32,
    }),
    'timestamp': int64,
})
  • 機能のドキュメント:
特徴クラスDtype説明
特徴辞書
episode_idテンソルint64
ステップデータセット
ステップ/アクションテンソル(38) float32
ステップ/割引テンソルfloat32
ステップ/is_firstテンソルブール
ステップ/is_lastテンソルブール
ステップ/is_terminalテンソルブール
ステップ/観察特徴辞書
歩数/観察/歩行者特徴辞書
ステップ/観察/ウォーカー/appendages_posテンソル(15) float32
ステップ/観察/ウォーカー/エゴセントリック_カメラ画像(64, 64, 3) uint8
steps/observation/walker/joints_posテンソル(30,) float32
steps/observation/walker/joints_velテンソル(30,) float32
steps/observation/walker/sensors_accelerometerテンソル(3) float32
steps/observation/walker/sensors_gyroテンソル(3) float32
ステップ/観察/ウォーカー/sensors_touchテンソル(4) float32
steps/observation/walker/sensors_velocimeterテンソル(3) float32
steps/observation/walker/tendons_posテンソル(8) float32
steps/observation/walker/tendons_velテンソル(8) float32
ステップ/観察/ウォーカー/world_zaxisテンソル(3) float32
ステップ/報酬テンソルfloat32
タイムスタンプテンソルint64

rlu_locomotion/rodent_mazes

  • データセットサイズ: 20.71 GiB

  • 分割:

スプリット
'train' 2,000
  • 機能構造:
FeaturesDict({
    'episode_id': int64,
    'steps': Dataset({
        'action': Tensor(shape=(38,), dtype=float32),
        'discount': float32,
        'is_first': bool,
        'is_last': bool,
        'is_terminal': bool,
        'observation': FeaturesDict({
            'walker': FeaturesDict({
                'appendages_pos': Tensor(shape=(15,), dtype=float32),
                'egocentric_camera': Image(shape=(64, 64, 3), dtype=uint8),
                'joints_pos': Tensor(shape=(30,), dtype=float32),
                'joints_vel': Tensor(shape=(30,), dtype=float32),
                'sensors_accelerometer': Tensor(shape=(3,), dtype=float32),
                'sensors_gyro': Tensor(shape=(3,), dtype=float32),
                'sensors_touch': Tensor(shape=(4,), dtype=float32),
                'sensors_velocimeter': Tensor(shape=(3,), dtype=float32),
                'tendons_pos': Tensor(shape=(8,), dtype=float32),
                'tendons_vel': Tensor(shape=(8,), dtype=float32),
                'world_zaxis': Tensor(shape=(3,), dtype=float32),
            }),
        }),
        'reward': float32,
    }),
    'timestamp': int64,
})
  • 機能のドキュメント:
特徴クラスDtype説明
特徴辞書
episode_idテンソルint64
ステップデータセット
ステップ/アクションテンソル(38) float32
ステップ/割引テンソルfloat32
ステップ/is_firstテンソルブール
ステップ/is_lastテンソルブール
ステップ/is_terminalテンソルブール
ステップ/観察特徴辞書
歩数/観察/歩行者特徴辞書
ステップ/観察/ウォーカー/appendages_posテンソル(15) float32
ステップ/観察/ウォーカー/エゴセントリック_カメラ画像(64, 64, 3) uint8
steps/observation/walker/joints_posテンソル(30,) float32
steps/observation/walker/joints_velテンソル(30,) float32
steps/observation/walker/sensors_accelerometerテンソル(3) float32
steps/observation/walker/sensors_gyroテンソル(3) float32
ステップ/観察/ウォーカー/sensors_touchテンソル(4) float32
steps/observation/walker/sensors_velocimeterテンソル(3) float32
steps/observation/walker/tendons_posテンソル(8) float32
steps/observation/walker/tendons_velテンソル(8) float32
ステップ/観察/ウォーカー/world_zaxisテンソル(3) float32
ステップ/報酬テンソルfloat32
タイムスタンプテンソルint64

rlu_locomotion/rodent_two_touch

  • データセットサイズ: 23.05 GiB

  • 分割:

スプリット
'train' 2,000
  • 機能構造:
FeaturesDict({
    'episode_id': int64,
    'steps': Dataset({
        'action': Tensor(shape=(38,), dtype=float32),
        'discount': float32,
        'is_first': bool,
        'is_last': bool,
        'is_terminal': bool,
        'observation': FeaturesDict({
            'walker': FeaturesDict({
                'appendages_pos': Tensor(shape=(15,), dtype=float32),
                'egocentric_camera': Image(shape=(64, 64, 3), dtype=uint8),
                'joints_pos': Tensor(shape=(30,), dtype=float32),
                'joints_vel': Tensor(shape=(30,), dtype=float32),
                'sensors_accelerometer': Tensor(shape=(3,), dtype=float32),
                'sensors_gyro': Tensor(shape=(3,), dtype=float32),
                'sensors_touch': Tensor(shape=(4,), dtype=float32),
                'sensors_velocimeter': Tensor(shape=(3,), dtype=float32),
                'tendons_pos': Tensor(shape=(8,), dtype=float32),
                'tendons_vel': Tensor(shape=(8,), dtype=float32),
                'world_zaxis': Tensor(shape=(3,), dtype=float32),
            }),
        }),
        'reward': float32,
    }),
    'timestamp': int64,
})
  • 機能のドキュメント:
特徴クラスDtype説明
特徴辞書
episode_idテンソルint64
ステップデータセット
ステップ/アクションテンソル(38) float32
ステップ/割引テンソルfloat32
ステップ/is_firstテンソルブール
ステップ/is_lastテンソルブール
ステップ/is_terminalテンソルブール
ステップ/観察特徴辞書
歩数/観察/歩行者特徴辞書
ステップ/観察/ウォーカー/appendages_posテンソル(15) float32
ステップ/観察/ウォーカー/エゴセントリック_カメラ画像(64, 64, 3) uint8
steps/observation/walker/joints_posテンソル(30,) float32
steps/observation/walker/joints_velテンソル(30,) float32
steps/observation/walker/sensors_accelerometerテンソル(3) float32
steps/observation/walker/sensors_gyroテンソル(3) float32
ステップ/観察/ウォーカー/sensors_touchテンソル(4) float32
steps/observation/walker/sensors_velocimeterテンソル(3) float32
steps/observation/walker/tendons_posテンソル(8) float32
steps/observation/walker/tendons_velテンソル(8) float32
ステップ/観察/ウォーカー/world_zaxisテンソル(3) float32
ステップ/報酬テンソルfloat32
タイムスタンプテンソルint64