在C++中执行强化学习会加快Python速度

Python做不到,但如何实现强化学习呢

现在我有一个新的选择。

一位名叫Isaac Poulton的英国哥哥开源了一个叫做CppRL的C++强化学习框架。

整个框架都是用PyTorch C++写的,主要的使用场景是在Python不能使用的项目中的强化学习。

目前该框架实施了A2C(Advantage Actor Critic)、PPO(近端战略优化)算法。

而且,用户只需很少的设置,就可以在电脑桌面程序中使用。

为什么要做这个框架,据说是因为C++没有一般的强化学习框架。

但是因为在自己的个人项目中是必要的,所以决定发布PyTorch C++的前端,训练了lunarlander-v2的安卓。

框架的特征是什么?效果怎么样

哥哥说这个框架有五个特点。

首先,可以实现强化学习中重要的两个算法A2C和PPO。其次,支持门循环单元(GRU)的循环策略。第三,跨平台兼容,已在Windows10和Ubuntu16.04和Ubuntu18.04中测试过。第四,有可靠的测试覆盖率。第五,可以适度优化,通过开放式PR推进框架的优化。

还有OpenAI Gym的实现,通过ZeroMQ通信测试框架如何在Gym环境中运行。

基于目前版本的框架,小哥在自己的笔记本电脑(i7-8550处理器)上,平均60秒训练一个智能体可获得200的报酬。lunarlander-v2提供了以下效果:。

八个智能体中有五个智能体完成任务。

在回答了Reddit用户的提问后,介绍了基本上可以以与Python实施相同的速度训练安卓。

但是,根据环境的不同,速度也会变慢。例如,OpenAI Gym客户端必须与Python接口,并通过TCP发送观察结果,这会大大降低培训速度。

但是,哥哥说Gym客户的重做解决。

未来会变成什么样呢

哥哥把它做出来扩展,合理优化,做一个随时都可以使用的框架。

在Reddit的帖子中,他也在呼吁。如果你有兴趣一起完成这个项目,非常欢迎并提出PR ~

是传送门

C++增强学习框架项目地址:

https://github.com/Omegastick/pytorch-cpp-rl

返回列表
上一篇:
下一篇:

文章评论