
O D3RLPY é uma biblioteca de aprendizado de reforço profundo offline para profissionais e pesquisadores.
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 )Importante
v2.xx apresenta mudanças de ruptura. Se você ainda seguir o v1.xx, instale explicitamente versões anteriores (por exemplo, pip install d3rlpy==1.1.1 ).
d3rlpy .O D3RLPY suporta Linux, MacOS e Windows.
A instalação do pacote D3RLPY instalará ou atualiza os seguintes pacotes para atender aos requisitos:
$ pip install d3rlpy
$ conda install conda-forge/noarch::d3rlpy
$ docker run -it --gpus all --name d3rlpy takuseno/d3rlpy:latest bash
| algoritmo | controle discreto | controle contínuo |
|---|---|---|
| Clonagem de comportamento (aprendizado supervisionado) | ✅ | ✅ |
| Iteração q ajustada neural (NFQ) | ✅ | ⛔ |
| Deep Q-Network (DQN) | ✅ | ⛔ |
| Duplo dqn | ✅ | ⛔ |
| Gradientes políticos determinísticos profundos (DDPG) | ⛔ | ✅ |
| Gêmeos de Política Determinada Profunda Twin Earda (TD3) | ⛔ | ✅ |
| Ator mole-crítico (SAC) | ✅ | ✅ |
| LOTE CONCTERIDO Q-LEARNING (BCQ) | ✅ | ✅ |
| Redução de acumulação de erro de inicialização (Bear) | ⛔ | ✅ |
| Q-learning conservador (CQL) | ✅ | ✅ |
| Vantagem ator-crítico ponderado (AWAC) | ⛔ | ✅ |
| Regressão regulada crítica (CRR) | ⛔ | ✅ |
| Política no espaço de ação latente (PLAS) | ⛔ | ✅ |
| TD3+BC | ⛔ | ✅ |
| Regularização da política com restrição de conjunto de dados (PRDC) | ⛔ | ✅ |
| Q-learning implícito (IQL) | ⛔ | ✅ |
| Q-learning calibrado (Cal-ql) | ⛔ | ✅ |
| Rebrac | ⛔ | ✅ |
| Transformador de decisão | ✅ | ✅ |
| Gato | ? | ? |
O D3RLPY é comparado para garantir a qualidade da implementação. Os scripts de referência estão disponíveis no diretório de reproduções. Os resultados de referência estão disponíveis no repositório 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 )},
)Veja mais conjuntos de dados em 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 )},
)Veja mais conjuntos de dados Atari em 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 )Experimente exemplos de carrinho no Google Colaboratory!
Mais documentações tutoriais estão disponíveis aqui.
Qualquer tipo de contribuição para o D3RLPY seria muito apreciada! Por favor, verifique o guia de contribuição.
| Canal | Link |
|---|---|
| Problemas | Questões do Github |
Importante
Por favor, não envie um e -mail para nenhum colaborador, incluindo o proprietário deste projeto, para solicitar suporte técnico. Esses e -mails serão ignorados sem responder à sua mensagem. Use problemas do GitHub para relatar seus problemas.
| Projeto | Descrição |
|---|---|
| MINERVA | Uma ferramenta GUI pronta para uso para RL offline |
| Scope-rl | Uma biblioteca de avaliação e seleção fora da política |
O roteiro para o lançamento futuro está disponível em roteiro.md.
O artigo está disponível aqui.
@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}
}
Este trabalho começou como parte do projeto Ph.D de Takuma Seno na Universidade Keio em 2020.
Este trabalho é apoiado pela Agência de Promoção de Tecnologia da Informação, Japão (IPA), Projeto de Recursos Humanos de TI exploratório (Programa Mitou) no ano fiscal de 2020.