部署训练有素的强化学习策略

一旦你培养了强化学习剂,也可以生成部署最优策略。您可以生成:

  • CUDA®使用GPU编码器深层神经网络策略码™

  • C / C ++使用表,深神经网络,或直链基函数策略码MATLAB®编码器™

注意

代码生成深层神经网络的政策支持只能与一个输入层网络。万博1manbetx

有关训练强化学习代理的更多信息,请参见火车强化学习代理

创建政策评估功能

要生成一个强化学习剂的训练有素的最优策略代码,您必须首先创建一个代理策略评估功能。您可以生成任何类型的策略表示对象的代理策略函数:

  • 值和Q表(rlTableRepresentation

  • 深层神经网络(rlLayerRepresentation

  • 线性基函数(rlLinearBasisRepresentation

有关不同类型的策略的详细信息,请参阅创建策略和价值功能交涉

若要创建基于给定观察选择操作的策略评估函数,请使用generatePolicyFunction命令。此命令生成一个MATLAB脚本,其中包含了策略评估功能,MAT文件,其中包含最佳策略数据。

您可以使用GPU编码器或生成代码来部署这一政策功能MATLAB编码器

使用生成代码GPU编码器

如果你的训练的最佳策略使用深层神经网络,可以生成使用GPU编码器的政策CUDA代码。有几个必需和建议必备产品生成CUDA代码深层神经网络。s manbetx 845欲了解更多信息,请参阅安装必备产品s manbetx 845(GPU编码器),并设置前提条件的产品s manbetx 845(GPU编码器)。

并非所有的深层神经网络层支持GPU代码生成。万博1manbetx对于支持层的列表,请参阅万博1manbetx万博1manbetx支持的网络和层(GPU编码器)。有关GPU代码生成的更多信息和示例,请参见使用GPU编码器进行深度学习(GPU编码器)。

生成CUDA规范深层神经网络策略

例如,为训练过的策略梯度代理生成GPU代码训练PG代理人平衡吊柱系统

装上训练好的特工。

加载(“MATLABCartpolePG.mat”“代理人”

创建该代理的策略评估功能。

generatePolicyFunction(代理)

此命令创建evaluatePolicy.m文件,其中包含策略函数,以及agentData.mat文件,其中包含了训练的深层神经网络的演员。对于给定的观察,政策功能评估使用网络的演员每一个潜在动作的概率。然后,策略函数随机选择基于这些概率的操作。

由于演员网络为这个PG剂具有单一的输入层和单个输出层,可以生成用于使用GPU编码器该网络的代码。例如,您可以生成CUDA兼容MEX功能。

配置代码生成函数创建一个CUDA兼容的c++ MEX函数。

CFG = coder.gpuConfig('MEX');cfg.TargetLang ='C ++';cfg.DeepLearningConfig = coder.DeepLearningConfig(“cudnn”);

设置策略评估输入参数的维度,该参数对应于代理的观察规范维度。若要查找观察维度,请使用getObservationInfo函数。在这种情况下,观测在四元素矢量。

argstr =“{1 (4,1)}”;

使用代码生成代码生成函数。

代码生成('-config''CFG''evaluatePolicy''-args'argstr,“报告”);

此命令生成的MEX函数evaluatePolicy_mex

使用生成代码MATLAB编码器

您可以为表、深度神经网络或线性基函数策略生成C/ c++代码MATLAB编码器

运用MATLAB编码器,你可以生成:

生成C代码对于Q表政策

作为一个例子,产生用于在训练Q学习剂C代码在基本网格世界中训练增强学习代理

装上训练好的特工。

加载('basicGWQAgent.mat''qAgent'

创建该代理的策略评估功能。

generatePolicyFunction(qAgent)

此命令创建evaluatePolicy.m文件,其中包含策略函数,以及agentData.mat文件,其中包含经过训练的Q表值函数。对于给定的观察,策略函数使用Q表查找每个潜在操作的值函数。然后,策略函数选择值函数最大的操作。

设置策略评估输入参数的维度,该参数对应于代理的观察规范维度。若要查找观察维度,请使用getObservationInfo函数。在这种情况下,只有一个有限的观测值。

argstr ='{[1]}';

配置代码生成函数来产生合适的可嵌入的C代码用于定位一个静态库,并输出文件夹设定为buildFolder

CFG = coder.config('LIB');outFolder =“buildFolder”;

方法生成C代码代码生成函数。

代码生成(“c”“- d”倒转褶皱,'-config''CFG'...'evaluatePolicy''-args'argstr,“报告”);

也可以看看

相关的话题