knn pytorch_PFRL介绍:基于Pytorch的深度强化学习库
PFRL是一个用Pytorch来实现的强化学习代码库,包含了很多前沿的DRL算法,2020年6月在github上发布以来,已经有了400多的star数。因为我在做深度学习的项目时用的都是Pytorch,而当今比较火的强化学习代码库是openai提出的由tensorflow实现的baselines,所以感觉还是有点不方便的。正好在做2020 NIPS MineRL competition的时候发现大
PFRL是一个用Pytorch来实现的强化学习代码库,包含了很多前沿的DRL算法,2020年6月在github上发布以来,已经有了400多的star数。
因为我在做深度学习的项目时用的都是Pytorch,而当今比较火的强化学习代码库是openai提出的由tensorflow实现的baselines,所以感觉还是有点不方便的。正好在做2020 NIPS MineRL competition的时候发现大赛给的基础代码用了这个PFRL的library,自己仔细看了一下发现确实不错,而国内关于PFRL的资料很少,所以想通过本文把PFRL介绍给大家。如果你也是习惯使用Pytorch,并苦于找不到合适的Library的话,一定不要错过这篇文章哦。
本文主要包括一下内容:
简介
PFRL的github网址是https://github.com/pfnet/pfrl,里面提供了详细的安装指南(相当简单),网站上给出了PFRL包含的算法,包括DQN、DoubleDQN、Categorical DQN、Rainbow、IQN、DDPG、A3C、ACER、PPO、TRPO、TD3、SAC等算法,对比Openai Baselines包含的算法(DQN、DDPG、A2C、ACER、ACKTR、PPO1、PPO2、TRPO、GAIL、HER),可见PFRL包含的算法是比较齐全的。
PFRL结构
PFRL还提供了详细的文档网站https://pfrl.readthedocs.io/en/latest/index.html,很适合查看其中使用的各种模块。
在PFRL框架下,深度强化学习算法被作为Agent类使用,每一个Agent包括act和observe两个函数,act函数通过observation作为输入,输出一个动作(action);observe函数的输入为上一个step执行的action所产生的结果,该函数可以用来在训练过程中更新agent的神经网络参数,也可以更新agent内部循环状态(internal recurrent state)。
除了强化学习算法,PFRL也提供了很多实用的代码块(building blocks),如上图浅橘黄色的框图所示:
关于强化学习的训练,PFRL也提供了功能强大的experiments函数,该函数通过将agent和OpenAI Gym环境作为输入,可以执行强化学习的训练过程。
快速入门代码
PFRL提供了快速入门的ipynb代码(Env: CartPole-v0, Agent: Double DQN),可以在google colab上运行,也可以在Jupyter notebook上运行:https://github.com/pfnet/pfrl/blob/master/examples/quickstart/quickstart.ipynb,强烈建议简单看一下这个入门教程,很详细的。
关于更详细的PFRL介绍,请参考PFRL官方github、文档,以及Meduim上的这篇文章https://medium.com/pytorch/pfrl-a-pytorch-based-deep-rl-library-22cd048cf49c
搬运不易,还请各位觉得有帮助的点赞支持一下!
更多推荐

所有评论(0)