百度paddlepaddle学习之强化学习工具PARL

@PARL

PARL介绍

特点

**可复现性保证。**我们提供了高质量的主流强化学习算法实现,严格地复现了论文对应的指标。

**大规模并行支持。**框架最高可支持上万个CPU的同时并发计算,并且支持多GPU强化学习模型的训练。

**可复用性强。**用户无需自己重新实现算法,通过复用框架提供的算法可以轻松地把经典强化学习算法应用到具体的场景中。

**良好扩展性。**当用户想调研新的算法时,可以通过继承我们提供的基类可以快速实现自己的强化学习算法。

框架结构

PARL的目标是构建一个可以完整复杂任务的智能体。以下是用户在逐步构建一个智能体的过程中需要了解到的结构:

Model

Model 用来定义前向(Forward)网络,这通常是一个策略网络(Policy Network)或者一个值函数网络(Value Function),输入是当前环境状态(State)。

Algorithm

Algorithm 定义了具体的算法来更新前向网络(Model),也就是通过定义损失函数来更新Model。一个Algorithm包含至少一个Model。

Agent

Agent 负责算法与环境的交互,在交互过程中把生成的数据提供给Algorithm来更新模型(Model),数据的预处理流程也一般定义在这里。

提示: 请访问教程 and API 文档以获取更多关于基础类的信息。

简易高效的并行接口

在PARL中,一个修饰符(parl.remote_class)就可以帮助用户实现自己的并行算法。 以下我们通过Hello World的例子来说明如何简单地通过PARL来调度外部的计算资源实现并行计算。 请访问我们的教程文档以获取更多的并行训练信息。

#============Agent.py=================
@parl.remote_class
class Agent(object):

	def say_hello(self):
		print("Hello World!")

	def sum(self, a, b):
		return a+b

parl.connect('localhost:8037')
agent = Agent()
agent.say_hello()
ans = agent.sum(1,5) # run remotely and not comsume any local computation resources 

两步调度外部的计算资源:

使用parl.remote_class修饰一个类,之后这个类就被转化为可以运行在其他CPU或者机器上的类。
调用parl.connect函数来初始化并行通讯,通过这种方式获取到的实例和原来的类是有同样的函数的。由于这些类是在别的计算资源上运行的,执行这些函数不再消耗当前线程计算资源。
PARL

真实的actor(橙色圆圈)运行在CPU集群,learner(蓝色圆圈)和remote actor(黄色圆圈)运行在本地的GPU上。对于用户而言,完全可以像写多线程代码一样来实现并行算法,相当简单,但是这些多线程的运算利用了外部的计算资源。我们也提供了并行算法示例,更多细节请参考IMPALA, A2C and GA3C。

安装:

依赖

Python 2.7 or 3.5+. (Windows系统目前仅支持python3.6+以上的环境)
paddlepaddle>=1.6.1 (非必须的,如果你只用并行部分的接口不需要安装paddle)

算法示例

QuickStart
DQN
ES(深度进化算法)
DDPG
PPO
IMPALA
A2C
TD3
SAC
MADDPG
冠军解决方案:NIPS2018强化学习假肢挑战赛
冠军解决方案:NIPS2019强化学习仿生人控制赛事

使用场景

想要在实际任务中尝试使用强化学习解决问题
想快速调研下不同强化学习算法在同一个问题上的效果
强化学习算法训练速度太慢,想搭建分布式强化学习训练平台
python的GIL全局锁限制了多线程加速,想加速python代码

构建智能体(基础)开源算法库
入门:解决cartpole问题MADDPG
子模块说明ES
模型参数管理SAC
绘制训练曲线TD3
PolicyGradient
DQN
DDPG
PPO
A2C
IMPALA

安装

安装

PARL 支持并在 Ubuntu >= 16.04, macOS >= 10.14.1, 和 Windows 10通过了测试。 目前在Windows上仅支持python3.5+以上的版本,要求是64位的python。

pip install parl --upgrade
如果遇到网络问题导致的下载较慢,建议使用清华源解决:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple parl --upgrade
如果想试试最新代码,可从源代码安装。

git clone https://github.com/PaddlePaddle/PARL
cd PARL
pip install .
如果遇到网络问题导致的下载较慢,建议使用清华源解决(参考上面的命令)。
遇到git clone如果较慢的问题,建议使用我们托管在国内码云平台的仓库。

git clone https://gitee.com/paddlepaddle/PARL.git
关于并行
如果只是想使用PARL的并行功能的话,是无需安装任何深度学习框架的。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值