用C++实现强化学习,速度不亚于Python,这里有个框架可用
乾明 发自 凹非寺
量子位 报道 | 公众号 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,这里有个框架可用相关推荐
- 深度强化学习:基于Python的理论及实践(英文版)
深度强化学习结合了深度学习和强化学习,使人工智能体能够在没有监督的情况下学习如何解决顺序决策问题.在过去的十年中,深度强化学习在一系列问题上取得了显著的成果,涵盖从单机游戏和多人游戏到机器人技术等方方 ...
- 强化学习原理与python实现原理pdf_纯Python实现!Facebook发布PyTorch分布式强化学习库...
图灵TOPIA来源:Facebook编译:刘静图灵联邦编辑部出品Facebook于近日发布了PyTorch中用于强化学习(RL)研究的平台:TorchBeast.TorchBeast实现了流行的IMP ...
- [强化学习代码笔记]Python复习
文章目录 Python复习 1. 介绍 2. 编写规范 3. 基本语法 一切都是对象 查看帮助 空/否定 保留字 as assert del try...except...finally global ...
- python box2d 教程_适合初学者的强化学习教程(1): python使用gym实践和注意事项
作者:知乎@Ai酱 安装步骤和报错问题 安装 pip install gym 报错 AttributeError: module 'gym.envs.box2d' has no attribute ' ...
- 适合初学者的强化学习教程(1): python使用gym实践和注意事项
作者:知乎@Ai酱 安装步骤和报错问题 安装 pip install gym 报错 AttributeError: module 'gym.envs.box2d' has no attribute ' ...
- Python 强化学习实用指南:1~5
原文:Hands-On Reinforcement Learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文集],采用译后 ...
- 深度强化学习(资源篇)(更新于2020.11.22)
理论 1种策略就能控制多类模型,华人大二学生提出RL泛化方法,LeCun认可转发 | ICML 2020 AlphaGo原来是这样运行的,一文详解多智能体强化学习的基础和应用 [DeepMind总结] ...
- 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例
强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例 1. 引言 在这个部分补充之前马尔科夫决策和动态规划部分的代码.在以后的内容我会把相关代码都附到相关内容的后面.本部 ...
- 基于深度强化学习的智能船舶航迹跟踪控制
基于深度强化学习的智能船舶航迹跟踪控制 人工智能技术与咨询 昨天 本文来自<中国舰船研究> ,作者祝亢等 关注微信公众号:人工智能技术与咨询.了解更多咨询! 0. 引 言 目前,国内外 ...
最新文章
- docker 删除镜像报错 image is referenced in multiple repositories
- 解决EclipseSDK3.3.0无法启动问题
- python学习笔记(一)基本数据类型
- Oracle语句连接查询
- 学习java多线程,这必须搞懂的这几个概念
- 为什么Docker对初创企业有意义
- yolo 视频场景行为数据集
- Linux进阶之路————Linux概述
- Android ContextCompat 使用详解
- 重写重载与重定义的区别
- think in java bruce eckel_java大师 Bruce Eckel 批评java
- JVM参数解析 Xmx、Xms、Xmn、NewRatio、SurvivorRatio、PermSize、PrintGC
- 解决AndroidStudio中使用.9图片不生效的问题
- Keil软件使用及流水灯设计
- 浏览器收藏夹整理及无效链接批量删除
- 【案例】某市社会治理网格化智慧工作平台建设案例
- UOJ#748-[UNR #6]机器人表演【dp】
- Ubuntu安装sogo输入法
- 引用腾讯视频 php代码,调用腾讯视频播放器APi代码
- 了解寄存器: EBP寄存器