6行代码搞定基本的RL算法,速度围观Reddit高赞帖

ITboyJason 2019-05-27

6行代码搞定基本的RL算法,速度围观Reddit高赞帖

【新智元导读】今天和大家分享Reddit上的一个热帖,楼主用PyTorch实现了基本的RL算法,而且每个算法都在一个文件夹中完成,即使没有GPU,每个算法也可以在30秒内完成训练。

近日,有开发人员用PyTorch实现了基本的RL算法,比如REINFORCE, vanilla actor-critic, DDPG, A3C, DQN 和PPO。这个帖子在Reddit论坛上获得了195个赞并引发了热议,一起来看一下吧。

6行代码搞定基本的RL算法,速度围观Reddit高赞帖

特点如下:

每个算法都在一个文件中完成。

每个算法的长度可达100~150行代码。

即使没有GPU,每个算法也可以在30秒内完成训练。

Envs固定在“CartPole-v1”上,你只需关注执行。

minimalRL-pytorch算法:

1. REINFORCE(66行)

2. TD Actor-Critic(97行)

3. DQN(113行,包括重放内存和目标网络)

4. PPO(116行,包括GAE)

5. DDPG(149行,包括OU噪声和软目标更新)

6. A3C(116行)

7. 有什么建议吗?

依赖配置:

1. PyTorch

2. OpenAI GYM

使用:

# Works only with Python 3.# e.g.python3 REINFORCE.pypython3 actor_critic.pypython3 dqn.pypython3 ppo.pypython3 ddpg.pypython3 a3c.py

评论中,不少朋友表示了对楼主的认可和感谢:

6行代码搞定基本的RL算法,速度围观Reddit高赞帖

Dump7留言:“可以!这是我见过的最美的东西之一。我不是一个能用框架编写NN的人。但我正在努力。这将在很大程度上帮助到我。谢谢你做了这个。但是你能为基本的CNN和RNN制作这样的单一文件代码吗?”

CodeReclaimers表示:“谢谢你分享这个——我知道把代码简化到最少是很费事的。特别好的是,你的代码将依赖配置控制在最低限度。通常都是,我去寻找可以学习的例子,要花至少30多分钟来收集所有依赖配置,结果发现我的平台上少了一些关键的东西。”

Reddit上的讨论:

https://www.reddit.com/r/MachineLearning/comments/bt8sap/p_implementations_of_basic_rl_algorithms_with/

Github资源:

https://github.com/seungeunrho/minimalRL

相关推荐