培训钢筋学习代理后,您可以生成代码来部署最佳策略。您可以生成:
CUDA.®使用GPU编码器™的深神经网络策略代码
C / C ++代码表,深神经网络或线性基础函数策略使用MATLAB®编码员™
如果支持所有使用的图层,则使用任何输入金宝app路径中的前馈神经网络支持代理的代理支持代理。使用经常性神经网络(RNN)的连续动作PG,A金宝appC,PPO和SAC代理不支持代码生成。
有关培训强化学习代理的更多信息,请参阅火车加固学习代理。
要创建基于给定观察选择操作的策略评估函数,请使用生成策略函数
命令。此命令生成一个MATLAB脚本,其中包含策略评估函数以及包含最佳策略数据的MAT文件。
您可以使用GPU编码器或者生成代码来部署此策略功能Matlab编码器。
如果您培训的最佳策略使用深度神经网络,则可以使用GPU编码器生成策略的CUDA代码。有关支持的GPU的更多信息,请参阅金宝appGPU版金宝app本支持(并行计算工具箱)。有几种必需的和推荐的先决产品可用于为深度神经网络生成CUDA代码。有关更多信息,请参阅下载188bet金宝搏安装先决品产品下载188bet金宝搏(GPU编码器)和设置必备产品下载188bet金宝搏(GPU编码器)。
并非所有深层神经网络层都支持GPU代码生成。有关支持层的列表,请参阅金宝app金宝app支持的网络、层和类(GPU编码器)。有关GPU代码生成的更多信息和示例,请参阅GPU编码器的深度学习(GPU编码器)。
例如,为在中培训的策略梯度代理生成GPU代码培训PG代理以平衡车柱系统。
给训练有素的特工装上子弹。
加载(“MATLABCartpolePG.mat”那'代理人')
为此代理创建策略评估功能。
generatePolicyFunction(代理)
此命令创建评估政策
包含策略函数的文件,以及AgentData.mat.
文件,包含培训的深神经网络演员。对于给定观察,策略函数使用演员网络评估每个潜在动作的概率。然后,策略函数随机基于这些概率选择动作。
您可以使用GPU编码器生成此网络的代码。例如,您可以生成与CUDA兼容的MEX函数。
配置Codegen.
函数创建CUDA兼容的C++ MEX函数。
cfg = coder.gpuconfig('mex');cfg.targetlang =.'c ++'; cfg.DeepLearningConfig=coder.DeepLearningConfig(“cudnn”);
设置策略评估函数的示例输入值。要查找观察维度,请使用获取观测信息
功能。在这种情况下,观察结果在四元素矢量中。
argstr =“{one(4,1)}”;
使用使用的代码Codegen.
功能。
Codegen('-config'那'cfg'那“评估政策”那'-args',argstr,“-报告”);
此命令生成MEX功能评估政策
。
您可以使用以下方法为表、深度神经网络或线性基函数策略生成C/C++代码:Matlab编码器。
使用Matlab编码器,您可以生成:
C / C ++代码用于使用Q表,值表或线性基础函数的策略。有关一般C / C ++代码生成的更多信息,请参阅生成代码(MATLAB编码器)。
C ++代码用于使用深神经网络的策略。注意,不支持使用经常性神经网络(RNN)的连续动作PG,AC,PP金宝appO和SAC代理的代码生成。有关支持的图层列表,请参阅金宝app用于代码生成的网络和层数金宝app(MATLAB编码器)。有关更多信息,请参阅使用MATLAB编码器进行深入学习的先决条件(MATLAB编码器)和与Matlab编码器深入学习(MATLAB编码器)。
作为示例,在第三方库上生成C代码,用于培训的策略梯度代理培训PG代理以平衡车柱系统。
给训练有素的特工装上子弹。
加载(“MATLABCartpolePG.mat”那'代理人')
为此代理创建策略评估功能。
generatePolicyFunction(代理)
此命令创建评估政策
包含策略函数的文件,以及AgentData.mat.
文件,包含培训的深神经网络演员。对于给定观察,策略函数使用演员网络评估每个潜在动作的概率。然后,策略函数随机基于这些概率选择动作。
配置Codegen.
函数生成适合构建MEX文件的代码。
cfg = coder.config('mex');
在配置对象上,将目标语言设置为C++,并设置深度学习配置
到没有一个
'。此选项不会使用任何第三方库生成代码。
cfg.targetlang =.'C'; cfg.DeepLearningConfig=coder.DeepLearningConfig('没有任何');
设置策略评估函数的示例输入值。要查找观察维度,请使用获取观测信息
功能。在这种情况下,观察结果在四元素矢量中。
argstr =“{one(4,1)}”;
使用使用的代码Codegen.
功能。
Codegen('-config'那'cfg'那“评估政策”那'-args',argstr,“-报告”);
此命令为包含深神经网络actor的策略梯度代理生成C ++代码。
作为例子,生成用于训练的策略梯度代理的C++代码。培训PG代理以平衡车柱系统使用英特尔数学内核库进行深度神经网络(MKL-DNN)。
给训练有素的特工装上子弹。
加载(“MATLABCartpolePG.mat”那'代理人')
为此代理创建策略评估功能。
generatePolicyFunction(代理)
此命令创建评估政策
包含策略函数的文件,以及AgentData.mat.
文件,包含培训的深神经网络演员。对于给定观察,策略函数使用演员网络评估每个潜在动作的概率。然后,策略函数随机基于这些概率选择动作。
配置Codegen.
函数生成适合构建MEX文件的代码。
cfg = coder.config('mex');
在配置对象上,将目标语言设置为C++,并设置深度学习配置
到目标库'mkldnn
“。此选项使用“英特尔深度神经网络数学内核库”(英特尔MKL-DNN)生成代码。
cfg.targetlang =.'c ++'; cfg.DeepLearningConfig=coder.DeepLearningConfig('mkldnn');
设置策略评估函数的示例输入值。要查找观察维度,请使用获取观测信息
功能。在这种情况下,观察结果在四元素矢量中。
argstr =“{one(4,1)}”;
使用使用的代码Codegen.
功能。
Codegen('-config'那'cfg'那“评估政策”那'-args',argstr,“-报告”);
此命令为包含深神经网络actor的策略梯度代理生成C ++代码。
例如,为培训的Q学习代理生成C代码在基本网格世界中训练强化学习Agent。
给训练有素的特工装上子弹。
加载('basicgwqagent.mat'那'Qagent')
为此代理创建策略评估功能。
generatePolicyFunction(qAgent)
此命令创建评估政策
包含策略函数的文件,以及AgentData.mat.
文件,其中包含经过训练的Q表值函数。对于给定的观察,策略函数使用Q表查找每个潜在操作的值函数。然后,策略函数选择值函数最大的操作。
设置策略评估函数的示例输入值。要查找观察维度,请使用获取观测信息
功能。在这种情况下,存在单个尺寸观察(属于离散的可能值集)。
argstr ='{[1]}';
配置Codegen.
函数生成适合定位静态库的嵌入式C代码,并将输出文件夹设置为构建文件夹
。
cfg = coder.config('lib');外档=“buildFolder”;
使用Codegen.
功能。
Codegen(“-c”那“-d”,外接器,'-config'那'cfg'那......“评估政策”那'-args',argstr,“-报告”);