
D3Rlpyは、実践者と研究者向けのオフラインの深い強化学習ライブラリです。
import d3rlpy
dataset , env = d3rlpy . datasets . get_dataset ( "hopper-medium-v0" )
# prepare algorithm
sac = d3rlpy . algos . SACConfig ( compile_graph = True ). create ( device = "cuda:0" )
# train offline
sac . fit ( dataset , n_steps = 1000000 )
# train online
sac . fit_online ( env , n_steps = 1000000 )
# ready to control
actions = sac . predict ( x )重要
V2.xxは、壊れた変更を導入します。それでもV1.xxに固執する場合は、以前のバージョンを明示的にインストールしてください(例: pip install d3rlpy==1.1.1 )。
d3rlpyでのみ、あらゆる種類のRL問題を解決できます。D3RlpyはLinux、MacOS、Windowsをサポートしています。
D3RLPYパッケージのインストールは、次のパッケージをインストールまたはアップグレードして要件を満たします。
$ pip install d3rlpy
$ conda install conda-forge/noarch::d3rlpy
$ docker run -it --gpus all --name d3rlpy takuseno/d3rlpy:latest bash
| アルゴリズム | 離散制御 | 継続的な制御 |
|---|---|---|
| 動作クローン(監視された学習) | ✅ | ✅ |
| ニューラルフィットQイテレーション(NFQ) | ✅ | ⛔ |
| ディープQネットワーク(DQN) | ✅ | ⛔ |
| ダブルDQN | ✅ | ⛔ |
| 深い決定論的ポリシーグラデーション(DDPG) | ⛔ | ✅ |
| ツイン遅延深い決定論的ポリシーグラデーション(TD3) | ⛔ | ✅ |
| ソフト俳優 - 批評家(sac) | ✅ | ✅ |
| バッチ制約付きQラーニング(BCQ) | ✅ | ✅ |
| ブートストラップエラーの蓄積削減(BEAR) | ⛔ | ✅ |
| 保守的なQラーニング(CQL) | ✅ | ✅ |
| アドバンテージの加重俳優 - critic(AWAC) | ⛔ | ✅ |
| 批評家の退行(CRR) | ⛔ | ✅ |
| 潜在アクションスペース(PLA)のポリシー | ⛔ | ✅ |
| TD3+BC | ⛔ | ✅ |
| データセット制約(PRDC)によるポリシーの正則化 | ⛔ | ✅ |
| 暗黙のQラーニング(IQL) | ⛔ | ✅ |
| キャリブレーションQラーニング(CAL-QL) | ⛔ | ✅ |
| rebrac | ⛔ | ✅ |
| 意思決定トランス | ✅ | ✅ |
| ガト | ? | ? |
D3Rlpyは、実装の品質を確保するためにベンチマークされています。ベンチマークスクリプトは、複製ディレクトリを使用できます。ベンチマークの結果は、d3rlpyベンチマークリポジトリを利用できます。

import d3rlpy
# prepare dataset
dataset , env = d3rlpy . datasets . get_d4rl ( 'hopper-medium-v0' )
# prepare algorithm
cql = d3rlpy . algos . CQLConfig ( compile_graph = True ). create ( device = 'cuda:0' )
# train
cql . fit (
dataset ,
n_steps = 100000 ,
evaluators = { "environment" : d3rlpy . metrics . EnvironmentEvaluator ( env )},
)D4RLのデータセットを参照してください。

import d3rlpy
# prepare dataset (1% dataset)
dataset , env = d3rlpy . datasets . get_atari_transitions (
'breakout' ,
fraction = 0.01 ,
num_stack = 4 ,
)
# prepare algorithm
cql = d3rlpy . algos . DiscreteCQLConfig (
observation_scaler = d3rlpy . preprocessing . PixelObservationScaler (),
reward_scaler = d3rlpy . preprocessing . ClipRewardScaler ( - 1.0 , 1.0 ),
compile_graph = True ,
). create ( device = 'cuda:0' )
# start training
cql . fit (
dataset ,
n_steps = 1000000 ,
evaluators = { "environment" : d3rlpy . metrics . EnvironmentEvaluator ( env , epsilon = 0.001 )},
)D4RL-ATARIのAtariデータセットの詳細をご覧ください。
import d3rlpy
import gym
# prepare environment
env = gym . make ( 'Hopper-v3' )
eval_env = gym . make ( 'Hopper-v3' )
# prepare algorithm
sac = d3rlpy . algos . SACConfig ( compile_graph = True ). create ( device = 'cuda:0' )
# prepare replay buffer
buffer = d3rlpy . dataset . create_fifo_replay_buffer ( limit = 1000000 , env = env )
# start training
sac . fit_online ( env , buffer , n_steps = 1000000 , eval_env = eval_env )Google ColaboratoryでCartpoleの例を試してみてください!
その他のチュートリアルドキュメントはこちらからご覧いただけます。
D3RLPYへのあらゆる種類の貢献は非常に高く評価されます!貢献ガイドを確認してください。
| チャネル | リンク |
|---|---|
| 問題 | githubの問題 |
重要
このプロジェクトの所有者を含む貢献者に電子メールを送信して、テクニカルサポートを求めてください。このようなメールは、メッセージに返信することなく無視されます。 GitHubの問題を使用して問題を報告してください。
| プロジェクト | 説明 |
|---|---|
| ミネルバ | オフラインRL用のすぐに使用できるGUIツール |
| scope-rl | オフポリシーの評価と選択ライブラリ |
将来のリリースへのロードマップは、roadmap.mdで入手できます。
紙はこちらから入手できます。
@article{d3rlpy,
author = {Takuma Seno and Michita Imai},
title = {d3rlpy: An Offline Deep Reinforcement Learning Library},
journal = {Journal of Machine Learning Research},
year = {2022},
volume = {23},
number = {315},
pages = {1--20},
url = {http://jmlr.org/papers/v23/22-0017.html}
}
この作品は、2020年にキオ大学で開催された高山セノの博士号プロジェクトの一部として始まりました。
この作業は、2020年度のインフォメーション技術プロモーション機関(IPA)、探索的IT Human Resources Project(Mitou Program)によってサポートされています。