Genrl é uma biblioteca de aprendizado de reforço Pytorch centrada em implementações de algoritmo reproduzível e generalizável e melhorando a acessibilidade no aprendizado de reforço
A versão atual do GENRL está em v0.0.2. Espere ruptura mudanças
A pesquisa de aprendizado de reforço está se movendo mais rápido do que nunca. Para acompanhar a tendência crescente e garantir que a pesquisa da RL permaneça reproduzível, o GENRL visa ajudar na reprodução e benchmark de papel mais rápidos, fornecendo os seguintes recursos principais:
Ao integrar esses recursos ao GENRL, pretendemos suportar qualquer nova implementação de algoritmo em menos de 100 linhas .
Se você estiver interessado em contribuir, sinta -se à vontade para passar pelos problemas e abrir o PRS para código, documentos, testes etc. Em caso de qualquer dúvida, confira as diretrizes que contribuíram
O GENRL é compatível com o Python 3.6 ou posterior e também depende de pytorch
e openai-gym
. A maneira mais fácil de instalar o GENRL é com o Pip, o instalador de pacote preferido do Python.
$ pip install genrl
Observe que o GENRL é um projeto ativo e publica rotineiramente novos lançamentos. Para atualizar o GENRL para a versão mais recente, use o PIP da seguinte maneira.
$ pip install -U genrl
Se você pretende instalar a mais recente versão não lançada da biblioteca (ou seja, da fonte), você pode simplesmente fazer:
$ git clone https://github.com/SforAiDl/genrl.git
$ cd genrl
$ python setup.py install
Para treinar um modelo mole de atores críticos do zero no ambiente de ginástica Pendulum-v0
e recompensas de log no Tensorboard
import gym
from genrl . agents import SAC
from genrl . trainers import OffPolicyTrainer
from genrl . environments import VectorEnv
env = VectorEnv ( "Pendulum-v0" )
agent = SAC ( 'mlp' , env )
trainer = OffPolicyTrainer ( agent , env , log_mode = [ 'stdout' , 'tensorboard' ])
trainer . train ()
Para treinar um modelo tabular Dyna-Q do zero no ambiente de ginástica FrozenLake-v0
e recompensas da trama:
import gym
from genrl . agents import QLearning
from genrl . trainers import ClassicalTrainer
env = gym . make ( "FrozenLake-v0" )
agent = QLearning ( env )
trainer = ClassicalTrainer ( agent , env , mode = "dyna" , model = "tabular" , n_episodes = 10000 )
episode_rewards = trainer . train ()
trainer . plot ( episode_rewards )