
D3RLPY est une bibliothèque d'apprentissage en renforcement profonde hors ligne pour les praticiens et les chercheurs.
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 )Important
V2.xx introduit des changements de rupture. Si vous vous en tenez toujours à v1.xx, veuillez installer explicitement les versions précédentes (par exemple pip install d3rlpy==1.1.1 ).
d3rlpy .D3RLPY prend en charge Linux, MacOS et Windows.
L'installation du package D3RLPY installe ou mettra à niveau les packages suivants pour satisfaire aux exigences:
$ pip install d3rlpy
$ conda install conda-forge/noarch::d3rlpy
$ docker run -it --gpus all --name d3rlpy takuseno/d3rlpy:latest bash
| algorithme | contrôle discret | contrôle continu |
|---|---|---|
| Cloning de comportement (apprentissage supervisé) | ✅ | ✅ |
| I itération Q ajustée neuronale (NFQ) | ✅ | ⛔ |
| Network Q (DQN) | ✅ | ⛔ |
| DQN double | ✅ | ⛔ |
| Gradients de politique déterministe profonde (DDPG) | ⛔ | ✅ |
| Twin retardé des gradients de politique déterministe profonde (TD3) | ⛔ | ✅ |
| Acteur doux-critique (sac) | ✅ | ✅ |
| Lot-learning contrainte par lots (BCQ) | ✅ | ✅ |
| Réduction d'accumulation d'erreur d'amorçage (ours) | ⛔ | ✅ |
| Learning Q-Learning (CQL) conservateur | ✅ | ✅ |
| Avantage Acteur-critique (AWAC) | ⛔ | ✅ |
| Régression critique de la critique (CRR) | ⛔ | ✅ |
| Politique dans l'espace d'action latente (PLAS) | ⛔ | ✅ |
| TD3 + BC | ⛔ | ✅ |
| Réglialisation des politiques avec contrainte de jeu de données (PRDC) | ⛔ | ✅ |
| Implicit Q-Learning (IQL) | ⛔ | ✅ |
| Learning Q calibré (CAL-QL) | ⛔ | ✅ |
| Renommer | ⛔ | ✅ |
| Transformateur de décision | ✅ | ✅ |
| Gato | ? | ? |
D3RLPY est comparé pour assurer la qualité de la mise en œuvre. Les scripts de référence sont le répertoire des reproductions disponibles. Les résultats de référence sont disponibles le référentiel D3Rlpy-Benchmarks.

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 )},
)Voir plus d'ensembles de données sur 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 )},
)Voir plus de jeux de données Atari à D4RL-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 )Essayez des exemples de Cartpole sur Google Colaboratory!
Plus de documents de tutoriel sont disponibles ici.
Tout type de contribution à D3Rlpy serait très apprécié! Veuillez vérifier le guide de contribution.
| Canal | Lien |
|---|---|
| Problèmes | Problèmes de github |
Important
Veuillez ne pas envoyer de courriel à aucun contributeur, y compris le propriétaire de ce projet, de demander un support technique. Ces e-mails seront ignorés sans répondre à votre message. Utilisez des problèmes GitHub pour signaler vos problèmes.
| Projet | Description |
|---|---|
| Mineroir | Un outil d'interface graphique prêt à l'emploi pour RL hors ligne |
| Portée-rl | Une bibliothèque d'évaluation et de sélection hors politique |
La feuille de route vers la future version est disponible dans la feuille de route.md.
Le papier est disponible ici.
@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}
}
Ce travail a commencé dans le cadre du projet de doctorat de Takuma Seno à l'Université Keio en 2020.
Ce travail est étayé par l'agence de promotion de l'information-technologie de l'information, Japon (IPA), Exploratory IT Human Resources Project (programme MITOU) au cours de l'exercice 2020.