培训代理商使用并行计算和gpu
如果你有并行计算工具箱™软件,你可以在多核处理器上运行并行模拟或gpu。如果你另外有MATLAB®并行服务器™软件,你可以在计算机上运行并行模拟集群或云资源。
注意,并行代理使用递归神经网络的训练和模拟,不支持多智能体环境,或代理。金宝app
独立的设备用于模拟或火车代理,代理已经训练之后,可以生成代码部署最优政策CPU或GPU。这是更详细地解释部署训练强化学习策略。
使用多个进程
当你训练特工使用并行计算,并行池客户机(MATLAB程序启动培训)发送拷贝其代理人和环境并行工作。每个工人模拟环境中的代理并将其模拟数据发送回客户端。客户端代理可以从工人和发送的数据发送更新后的政策参数回工人。
创建一个平行的N
工人,使用以下语法。
池= parpool (N);
如果你没有创建一个平行池使用parpool
(并行计算工具箱),火车
函数自动使用默认创建一个平行池的偏好。这些首选项指定的更多信息,请参阅指定您的平行的偏好(并行计算工具箱)。注意,使用并行的线程池的工人,如池= parpool(“线程”)
,不支持。金宝app
训练一个代理你必须通过使用多个流程火车
一个函数rlTrainingOptions
对象中UseParallel
被设置为真正的
。
有关配置的更多信息培训使用并行计算,看到UseParallel
和ParallelizationOptions
选项rlTrainingOptions
。例如关于如何配置选项异步优势actor-critic (A3C)代理培训,看到最后一个例子rlTrainingOptions
。
例如,火车一个代理在MATLAB使用并行计算,看看列车空调代理使用并行计算平衡Cart-Pole系统。例如,火车一个代理在仿真软件中使用并行计算金宝app®,请参阅火车DQN代理车道保持辅助使用并行计算和两足机器人使用强化学习代理行走训练。
智能体并行训练注意事项
off-policy代理,如DDPG DQN代理,不使用你所有的核心并行训练。例如,如果您的CPU有六个核心,火车有四个工人。这样做为平行池客户提供更多的资源来计算梯度基于经验发回的工人。限制政策所需的工人数量不是代理,如AC和PG代理,梯度计算的工人。
Gradient-Based并行化(AC和PG代理)
当培训交流和PG并行代理,环境模拟和梯度计算都是由工人完成的。受托人对环境,特别是工人模拟经验计算梯度,梯度并将其发送给客户端。客户平均梯度,更新网络参数并发送更新后的参数回工人他们可以继续模拟代理与新参数。
这种类型的基于并行训练也被称为梯度并行化,并允许您实现,原则上,速度提高近线性数量的工人。但是,这一方案要求同步培训(即模式
财产的rlTrainingOptions
对象传递给你火车
必须设置为函数“同步”
)。这意味着员工必须暂停执行,直到所有的工人都完成了,结果只训练进步速度是最慢的工人允许。
经验并行化(DQN DDPG, PPO、TD3和囊代理)
当训练DQN DDPG PPO、TD3并行和囊剂,环境仿真是由工人和学习是通过客户端。具体地说,工人们模拟剂对环境和发送经验数据(下观察,观察、行动、奖励,和终止信号)给客户机。然后客户端计算梯度从经验,更新网络参数并发送更新后的参数回工人,继续模拟剂的新参数。
这种类型的并行训练也被称为经验并行化,并且可以运行使用异步培训(即模式
财产的rlTrainingOptions
对象传递给你火车
可以设置为函数“异步”
)。
经验并行化可以减少培训时间只有在模拟环境的计算成本很高的成本相比,优化网络参数。否则,环境仿真是足够快时,工人被搁置不用等待客户学习和返回更新后的参数。
总之,经验并行效率可以提高样本(作为一个代理可以处理样品的数量在给定时间)只有当比率R环境复杂性和步学习之间的复杂性很大。如果两个环境模拟和学习也同样计算昂贵,经验并行不太可能提高抽样效率。然而,在这种情况下,off-policy代理支持并行(DQN, DDPG、TD3和囊)可以减少mini-ba金宝apptch大小R大,从而提高抽样效率。
执行缓冲区,当训练DQN接触的经验,DDPG, TD3,并行或囊代理,设置NumStepsToLookAhead
财产或相应的代理选择对象1
。一个不同的值会导致一个错误当并行训练是未遂。
使用gpu
你可以加快训练通过执行表示操作(如梯度计算和预测),在本地GPU而不是CPU。为此,当创建一个评论家或演员,设置它UseDevice
选项“图形”
而不是“cpu”
。
的“图形”
选择需要软件和CUDA并行计算工具箱®使英伟达®GPU。支持gpu看到更多的信息金宝appGPU计算的需求(并行计算工具箱)。
您可以使用gpuDevice
(并行计算工具箱)查询或选择一个当地的GPU设备使用MATLAB。
使用gpu可能是有益的,当你有一个深神经网络的演员或评论家等大型批量大小或需要执行操作多个卷积层输入图像。
例如如何训练一个代理使用GPU,明白了火车DDPG代理摇摆起来,平衡摆与图像观察。
同时使用多个进程和gpu
你也可以训练特工同时使用多个进程和当地的GPU(之前选择使用gpuDevice
(并行计算工具箱))在同一时间。要做到这一点,首先创建一个评论家或演员接近者对象的UseDevice
选项设置为“图形”
。然后您可以使用评论家和演员来创建一个代理,然后火车代理使用多个进程。这是通过创建一个rlTrainingOptions
对象中UseParallel
被设置为真正的
并通过火车
函数。
基于对梯度并行化,(必须在同步模式下运行)环境仿真是由工人完成,使用当地的GPU计算梯度和执行一个预测步骤。渐变然后发送回平行池客户过程中计算平均水平,更新网络参数并将它们发送回的工人,所以他们继续模拟剂,使用新的参数,针对环境。
对于经验并行,(可以运行在异步模式),工人们模拟剂对环境,平行池经验数据发送到客户端。然后客户端使用其本地GPU计算梯度的经历,然后更新网络参数,将更新后的参数发送回工人,继续模拟剂,使用新的参数,对环境。
注意,当使用并行处理和GPU PPO特工训练,工人使用当地的GPU计算优势,然后发送处理经验轨迹(包括优势、目标和行动的概率)回客户机。
另请参阅
火车
|rlTrainingOptions
|rlRepresentationOptions