流行的深度强化学习算法的实现

rlib的Python项目详细描述


RLIB

Build Status

rlib是一个小型的深度强化学习库,实现了流行的深度rl算法。每个算法都是高度模块化和可定制的,这使得这个库对于任何想在同一环境中测试不同算法性能的人来说都是一个很好的选择。rlib使用pytorch作为其初始版本的选择库,但是对tensorflow的支持已经在路线图上了。

安装

pip install rlib

用法

使用rlib很简单:

fromrlib.algorithms.dqnimportDQNAgentfromrlib.environments.gymimportGymEnvironmente=gym.make('CartPole-v0')observation_size=4action_size=2dqn=DQNAgent(observation_size,action_size)env=GymEnvironment(e,dqn)env.train()env.test()

高级

Tensorboard和GifRecorder

  1. 初始化Logger和/或GIFRecorder对象。
os.makedirs('your/log/dir',exist_ok=True)logger=Logger(output_dir)gifs_recorder=GIFRecorder(output_dir,duration=3.0)
  1. 使用这些对象初始化新环境。
env=GymEnvironment(e,dqn,logger=logger,gifs_recorder=gifs_recorder)
  1. 要检查TensorBoard日志,请运行:
tensorboard --logdir=your/log/dir

定制型号

  1. 定义自己的自定义模型。
classNeuralNet(torch.nn.Module):def__init__(self):super(NeuralNet,self).__init__()self.fc1=nn.Linear(4,8)self.relu=nn.ReLU()self.fc2=nn.Linear(8,2)defforward(self,x):out=self.fc1(x)out=self.relu(out)out=self.fc2(out)returnout
  1. 请检查文档中您正在使用的算法以获得适当的参数名。对于dqn:
dqn=DQNAgent(observation_size,action_size,qnetwork_local=NeuralNet(),qnetwork_target=NeuralNet(),)

节省模型重量

  1. 在创建算法的新实例时,将model_output_dir参数设置为要保存模型的目录。

测试

运行所有测试:

python -m unittest discover test/

贡献

安装

请随意打开任何发现的错误或任何功能请求的问题。对于新功能,总是欢迎拉取请求。

virtualenv -p python3 venv
cd rlib/
source venv/bin/activate
pip install -r requirements.txt

要确保安装工作正常,请运行测试文件夹中的一个算法:

python test/algorithms/dqn_test.py

许可证

rlibMIT License下被释放。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从同步请求中获取响应代码   具有深度复制的类中的Java oop getter/setter   java LDAP“简单”用户身份验证(JNDI Tomcat)不稳定?   java将Jenkins jnlp代理设置为通过API以编程方式使用WebSocket   java如何获取在servlet筛选器的静态块中启动的静态类的实例?   前两个数字的java charAt循环不能循环它   java在Spring引导执行器中是否有检查子服务运行状况的标准方法?   java我可以将jacksonmapped@JsonProperties推到“顶层”吗?   json JAVA:opencsv随机读取CSV单元格   无第三方应用程序的java捆绑包JRE   使用openidConnectClient功能的WAS Liberty中出现java无效cookie标头错误   java如何在Restful Web服务中从Http Post获取数组?   java如何读取安卓开发的JSON url?   如何在java IO中打开包含汉字的文件?