主要内容

部署培训的强化学习政策

培训钢筋学习代理后,您可以生成代码来部署最佳策略。你可以生成:

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

  • C / C ++代码表,深神经网络或线性基础函数策略使用马铃薯®编码器™

如果支持所有使用的图层,则使用任何输入金宝app路径中的前馈神经网络支持代理的代理支持代理。不支持使用经常性神经网络(RNN)的连续动作P金宝appG,AC,PPO和SAC代理,或者对于具有多个输入路径的任何代理并在任何路径中包含RNN的任何代理。

有关培训加固学习代理的更多信息,请参阅火车加固学习代理

要创建基于给定观察的策略评估功能,请使用生成policyfunction.命令。此命令生成一个MATLAB脚本,其中包含策略评估函数以及包含最佳策略数据的MAT文件。

您可以使用GPU编码器或者生成代码来部署此策略功能Matlab编码器

使用代码使用GPU编码器

如果您培训的最佳策略使用深度神经网络,则可以使用GPU编码器生成策略的CUDA代码。有关支持的GPU的更多信息,请参阅金宝appGPU通金宝app过发布支持(并行计算工具箱)。有几种要求和推荐的先决条件产品,用于为深神经网络生成CUDA代码。下载188bet金宝搏有关更多信息,请参阅安装先决品产品下载188bet金宝搏(GPU编码器)设置先决条件产品下载188bet金宝搏(GPU编码器)

并非所有深度神经网络层都支持GPU代码生成。金宝app有关支持的图层列表,请参阅金宝app金宝app支持的网络,图层和类(GPU编码器)。有关GPU代码生成的更多信息和示例,请参阅与GPU编码器深入学习(GPU编码器)

产生CUDA.深度神经网络政策的代码

例如,为培训的策略梯度代理生成GPU代码火车PG代理可以平衡车杆系统

加载培训的代理。

加载('matlabcartpolepg.mat''代理人'

为此代理创建策略评估功能。

生成policyfunction(代理)

此命令创建equatepolicy.m.文件,包含策略函数,以及AgentData.mat.文件,包含培训的深神经网络演员。对于给定观察,策略函数使用演员网络评估每个潜在动作的概率。然后,策略函数随机基于这些概率选择动作。

您可以使用GPU编码器为此网络生成代码。例如,您可以生成CUDA兼容MEX函数。

配置Codegen.功能创建CUDA兼容C ++ MEX功能。

cfg = coder.gpuconfig('mex');cfg.targetlang ='c ++';cfg.deeplearningconfig = coder.deeplearningconfig('cudnn');

设置策略评估功能的示例输入值。要找到观察维度,请使用getobservationInfo.功能。在这种情况下,观察结果在四元素矢量中。

argstr ='{ONEON(4,1)}';

使用使用的代码Codegen.功能。

Codegen('-config''cfg''equatepolicy''-args',argstr,'-报告');

此命令生成MEX功能evaluatepolicy_mex.

使用代码使用马铃薯编码器

您可以使用表,深神经网络或线性基础函数策略生成C / C ++代码Matlab编码器

使用Matlab编码器,您可以生成:

在不使用任何第三方库的情况下为深神经网络策略生成C代码

作为示例,在第三方库上生成C代码,用于培训的策略梯度代理火车PG代理可以平衡车杆系统

加载培训的代理。

加载('matlabcartpolepg.mat''代理人'

为此代理创建策略评估功能。

生成policyfunction(代理)

此命令创建equatepolicy.m.文件,包含策略函数,以及AgentData.mat.文件,包含培训的深神经网络演员。对于给定观察,策略函数使用演员网络评估每个潜在动作的概率。然后,策略函数随机基于这些概率选择动作。

配置Codegen.生成适合构建MEX文件的代码的函数。

cfg = coder.config('mex');

在配置对象上,将目标语言设置为C ++,并设置DeeplearningConfig到 '没有任何'。此选项不会使用任何第三方库生成代码。

cfg.targetlang ='C';cfg.deeplearningconfig = coder.deeplearningconfig('没有任何');

设置策略评估功能的示例输入值。要找到观察维度,请使用getobservationInfo.功能。在这种情况下,观察结果在四元素矢量中。

argstr ='{ONEON(4,1)}';

使用使用的代码Codegen.功能。

Codegen('-config''cfg''equatepolicy''-args',argstr,'-报告');

此命令为包含深神经网络actor的策略梯度代理生成C ++代码。

使用第三方库生成用于深度神经网络策略的C ++代码

例如,为培训的策略渐变代理生成C ++代码火车PG代理可以平衡车杆系统使用英特尔数学内核库进行深度神经网络(MKL-DNN)。

加载培训的代理。

加载('matlabcartpolepg.mat''代理人'

为此代理创建策略评估功能。

生成policyfunction(代理)

此命令创建equatepolicy.m.文件,包含策略函数,以及AgentData.mat.文件,包含培训的深神经网络演员。对于给定观察,策略函数使用演员网络评估每个潜在动作的概率。然后,策略函数随机基于这些概率选择动作。

配置Codegen.生成适合构建MEX文件的代码的函数。

cfg = coder.config('mex');

在配置对象上,将目标语言设置为C ++,并设置DeeplearningConfig到目标库'Mkldnn.'。此选项生成使用Intel Math Kernel库进行深度神经网络(Intel MKL-DNN)的代码。

cfg.targetlang ='c ++';cfg.deeplearningconfig = coder.deeplearningconfig('mkldnn');

设置策略评估功能的示例输入值。要找到观察维度,请使用getobservationInfo.功能。在这种情况下,观察结果在四元素矢量中。

argstr ='{ONEON(4,1)}';

使用使用的代码Codegen.功能。

Codegen('-config''cfg''equatepolicy''-args',argstr,'-报告');

此命令为包含深神经网络actor的策略梯度代理生成C ++代码。

为Q表策略生成C代码

例如,为培训的Q学习代理生成C代码在基本网格世界中列车加固学习代理

加载培训的代理。

加载('basicgwqagent.mat''Qagent'

为此代理创建策略评估功能。

GeneratePolicyFunction(QAGENT)

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

设置策略评估功能的示例输入值。要找到观察维度,请使用getobservationInfo.功能。在这种情况下,存在单个尺寸观察(属于离散的可能值集)。

argstr ='{[1]}';

配置Codegen.函数生成适合定位静态库的嵌入式C代码,并将输出文件夹设置为BuildFolder.

cfg = coder.config('lib');外档='buildfolder';

使用使用的C代码Codegen.功能。

Codegen('-C''-d',外档,'-config''cfg'......'equatepolicy''-args',argstr,'-报告');

也可以看看

相关话题