乾明 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

没法用Python,怎么实现强化学习?

现在,有了一个新选择。

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

整个框架,用PyTorch C++编写而成,主要的使用场景,就是在没法使用Python的项目中实现强化学习。

现在,这个框架已经可以实现A2C(Advantage Actor Critic)、PPO(近端策略优化)算法。

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

小哥说,之所以做这个框架,是因为C++中还没有一个通用的强化学习框架。

但自己的个人项目中需要一个,就借着PyTorch C++前端的发布,做了一个出来,还顺便训练了一批LunarLander-v2游戏中的智能体。

框架有何特性?用起来效果如何?

根据小哥的介绍,这个框架一共有五大特性:

  • 首先,它能够实现强化学习中很关键的两个算法A2C和PPO。

  • 其次,支持基于门控循环单元(GRU)的循环策略。

  • 第三,具备跨平台兼容性,已经在Windows 10和Ubuntu 16.04和Ubuntu 18.04上进行了测试。

  • 第四,有可靠的测试覆盖率。

  • 第五,能够适度进行优化,可以开放PR来推进框架优化。

此外,框架中还有对OpenAI Gym的实现,其通过ZeroMQ通信来测试框架在Gym环境中的表现。

基于当前的版本的框架,小哥在自己的笔记本电脑(i7-8550处理器)上,平均用60秒训练一个智能体就可以获得200奖励。在登月游戏LunarLander-v2中实现的效果如下:

这8个智能体中,有5个智能体完成了任务。

在回答Reddit上网友的提问时,他介绍了训练智能体的速度,基本上和用Python实现速度相当。

但是,在一些环境中速度会比较慢。比如OpenAI Gym客户端中,必须要与Python接口,并通过TCP发送观察结果,所以训练速度会大幅下降。

不过,小哥说会通过重做Gym客户端来解决这个问题。

这一框架未来会如何?

小哥表示,要把它打造成一个可扩展的、经过合理优化的、随时可以使用的框架。

在Reddit的帖子中,他也发起了呼吁,如果你有兴趣来一起完成这一项目,非常欢迎提交PR~

传送门

C++强化学习框架项目地址:
https://github.com/Omegastick/pytorch-cpp-rl

活动报名|多模态视频人物识别

订阅AI内参,获取AI行业资讯

加入社群

量子位AI社群开始招募啦,量子位社群分:AI讨论群、AI+行业群、AI技术群;

欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“微信群”,获取入群方式。(技术群与AI+行业群需经过审核,审核较严,敬请谅解)

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「好看」吧 !

用C++实现强化学习,速度不亚于Python,这里有个框架可用相关推荐

  1. 深度强化学习:基于Python的理论及实践(英文版)

    深度强化学习结合了深度学习和强化学习,使人工智能体能够在没有监督的情况下学习如何解决顺序决策问题.在过去的十年中,深度强化学习在一系列问题上取得了显著的成果,涵盖从单机游戏和多人游戏到机器人技术等方方 ...

  2. 强化学习原理与python实现原理pdf_纯Python实现!Facebook发布PyTorch分布式强化学习库...

    图灵TOPIA来源:Facebook编译:刘静图灵联邦编辑部出品Facebook于近日发布了PyTorch中用于强化学习(RL)研究的平台:TorchBeast.TorchBeast实现了流行的IMP ...

  3. [强化学习代码笔记]Python复习

    文章目录 Python复习 1. 介绍 2. 编写规范 3. 基本语法 一切都是对象 查看帮助 空/否定 保留字 as assert del try...except...finally global ...

  4. python box2d 教程_适合初学者的强化学习教程(1): python使用gym实践和注意事项

    作者:知乎@Ai酱 安装步骤和报错问题 安装 pip install gym 报错 AttributeError: module 'gym.envs.box2d' has no attribute ' ...

  5. 适合初学者的强化学习教程(1): python使用gym实践和注意事项

    作者:知乎@Ai酱 安装步骤和报错问题 安装 pip install gym 报错 AttributeError: module 'gym.envs.box2d' has no attribute ' ...

  6. Python 强化学习实用指南:1~5

    原文:Hands-On Reinforcement Learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文集],采用译后 ...

  7. 深度强化学习(资源篇)(更新于2020.11.22)

    理论 1种策略就能控制多类模型,华人大二学生提出RL泛化方法,LeCun认可转发 | ICML 2020 AlphaGo原来是这样运行的,一文详解多智能体强化学习的基础和应用 [DeepMind总结] ...

  8. 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例

    强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例 1. 引言 在这个部分补充之前马尔科夫决策和动态规划部分的代码.在以后的内容我会把相关代码都附到相关内容的后面.本部 ...

  9. 基于深度强化学习的智能船舶航迹跟踪控制

    基于深度强化学习的智能船舶航迹跟踪控制 人工智能技术与咨询 昨天 本文来自<中国舰船研究> ,作者祝亢等 关注微信公众号:人工智能技术与咨询.了解更多咨询! 0.   引 言 目前,国内外 ...

最新文章

  1. docker 删除镜像报错 image is referenced in multiple repositories
  2. 解决EclipseSDK3.3.0无法启动问题
  3. python学习笔记(一)基本数据类型
  4. Oracle语句连接查询
  5. 学习java多线程,这必须搞懂的这几个概念
  6. 为什么Docker对初创企业有意义
  7. yolo 视频场景行为数据集
  8. Linux进阶之路————Linux概述
  9. Android ContextCompat 使用详解
  10. 重写重载与重定义的区别
  11. think in java bruce eckel_java大师 Bruce Eckel 批评java
  12. JVM参数解析 Xmx、Xms、Xmn、NewRatio、SurvivorRatio、PermSize、PrintGC
  13. 解决AndroidStudio中使用.9图片不生效的问题
  14. Keil软件使用及流水灯设计
  15. 浏览器收藏夹整理及无效链接批量删除
  16. 【案例】某市社会治理网格化智慧工作平台建设案例
  17. UOJ#748-[UNR #6]机器人表演【dp】
  18. Ubuntu安装sogo输入法
  19. 引用腾讯视频 php代码,调用腾讯视频播放器APi代码
  20. 了解寄存器: EBP寄存器

热门文章

  1. 软件测试(上线软件)
  2. 直播粉丝统计平台 抖音直播粉丝 如何查看直播间的粉丝人数 如何查看主播直播数据记录
  3. Tesseract-OCR 图片数字识别的样本训练
  4. H5身份证上传识别功能
  5. B. Cat Cycle
  6. React导入json数据
  7. UE4 使用自发光材质作为烘焙光源
  8. win7修复计算机无鼠标,win7电脑鼠标不听使唤反应慢如何修复
  9. Java咖啡馆---第一杯咖啡
  10. 2022年疫情下的卡塔尔世界杯,你看了么,盘点一下爆冷的赛事