一旦你培养了强化学习剂,也可以生成部署最优策略。您可以生成:
CUDA.®使用GPU编码器深层神经网络策略码™
C / C ++使用表,深神经网络,或直链基函数策略码马铃薯®编码器™
码生成支持在任何所述输入路径中的使用前金宝app馈神经网络剂,条件是所有的使用的层的支持。代码生成不支持用于使用回归神经网络(RNN)连金宝app续动作PG,AC,PPO,和SAC剂。
有关训练强化学习代理的更多信息,请参见火车强化学习代理.
要创建基于给定观察选择操作的策略评估函数,请使用generatePolicyFunction
命令。此命令生成一个MATLAB脚本,其中包含了策略评估功能,MAT文件,其中包含最佳策略数据。
您可以使用GPU编码器或生成代码来部署这一政策功能Matlab编码器.
如果你的训练的最佳策略使用深层神经网络,可以生成使用GPU编码器的政策CUDA代码。有关支持的GPU查看详细信息金宝appGPU支金宝app持情况(并行计算工具箱).对于生成深度神经网络CUDA代码,有几个必需的和推荐的先决条件产品。下载188bet金宝搏有关更多信息,请参阅安装必备产品下载188bet金宝搏(GPU编码器)和设置前提条件的产品下载188bet金宝搏(GPU编码器).
并非所有的深度神经网络层都支持GPU代码生成。金宝app对于支持层的列表,请参阅金宝app金宝app支持的网络、层和类(GPU编码器).欲了解更多信息和GPU代码生成示例,请参阅基于GPU编码器的深度学习(GPU编码器).
以中训练的策略梯度代理为例,生成GPU代码训练PG代理平衡车杆系统.
装载训练有素的特工。
加载(“MATLABCartpolePG.mat”那'代理人')
创建该代理的策略评估功能。
generatePolicyFunction(代理)
此命令创建evaluatePolicy.m
文件,其中包含策略函数,以及agentData.mat
文件,其中包含了训练的深层神经网络的演员。对于给定的观察,政策功能评估使用网络的演员每一个潜在动作的概率。然后,策略函数随机选择基于这些概率的操作。
你可以使用GPU编码器为这个网络生成代码。例如,可以生成一个CUDA兼容的MEX函数。
配置Codegen.
函数来创建一个CUDA兼容的c++ MEX函数。
CFG = coder.gpuConfig('MEX');cfg.TargetLang ='C ++';cfg.DeepLearningConfig = coder.DeepLearningConfig(“cudnn”);
为策略评估功能设置示例输入值。要找到观察维度,请使用getObservationInfo
功能。在这种情况下,观测在四元素矢量。
argstr =“{1(4,1)}”;
使用代码生成Codegen.
功能。
代码生成('-config'那'CFG'那'evaluatePolicy'那'-args'argstr,“报告”);
此命令生成的MEX函数evaluatePolicy_mex
.
您可以为表,深度神经网络,或线性基函数策略生成C/ c++代码使用Matlab编码器.
使用Matlab编码器,你可以生成:
C / C ++对策略代码,使用q表,值表,或直链基函数。有关常规的C / C ++代码生成的更多信息,请参见生成代码(MATLAB编码器).
C ++代码,使用深层神经网络政策。注意:不支持使用递归神经网络(RNN)连续动作PG,AC,PPO,金宝app以及SAC剂,其代码生成。对于支持层的列表,请参阅金宝app网络和层支持的代码生成金宝app(MATLAB编码器).有关更多信息,请参阅先决条件深度学习与MATLAB编码器(MATLAB编码器)和深度学习与MATLAB编码器(MATLAB编码器).
作为一个例子,产生而对第三方库依赖C代码为策略梯度剂在训练训练PG代理平衡车杆系统.
装载训练有素的特工。
加载(“MATLABCartpolePG.mat”那'代理人')
创建该代理的策略评估功能。
generatePolicyFunction(代理)
此命令创建evaluatePolicy.m
文件,其中包含策略函数,以及agentData.mat
文件,其中包含了训练的深层神经网络的演员。对于给定的观察,政策功能评估使用网络的演员每一个潜在动作的概率。然后,策略函数随机选择基于这些概率的操作。
配置Codegen.
函数生成适合于构建MEX文件的代码。
CFG = coder.config('MEX');
在配置对象上,将目标语言设置为c++,并设置DeepLearningConfig
“没有任何
”。该选项不使用任何第三方库生成代码。
cfg.TargetLang ='C';cfg.DeepLearningConfig = coder.DeepLearningConfig('没有任何');
为策略评估功能设置示例输入值。要找到观察维度,请使用getObservationInfo
功能。在这种情况下,观测在四元素矢量。
argstr =“{1(4,1)}”;
使用代码生成Codegen.
功能。
代码生成('-config'那'CFG'那'evaluatePolicy'那'-args'argstr,“报告”);
此命令生成用于容纳深神经网络演员策略梯度剂C ++代码。
以生成的c++代码为例,对策略梯度代理进行了训练训练PG代理平衡车杆系统使用深层神经网络的英特尔数学核心函数库(MKL-DNN)。
装载训练有素的特工。
加载(“MATLABCartpolePG.mat”那'代理人')
创建该代理的策略评估功能。
generatePolicyFunction(代理)
此命令创建evaluatePolicy.m
文件,其中包含策略函数,以及agentData.mat
文件,其中包含了训练的深层神经网络的演员。对于给定的观察,政策功能评估使用网络的演员每一个潜在动作的概率。然后,策略函数随机选择基于这些概率的操作。
配置Codegen.
函数生成适合于构建MEX文件的代码。
CFG = coder.config('MEX');
在配置对象上,将目标语言设置为c++,并设置DeepLearningConfig
到目标库“mkldnn
”。此选项使用用于深度神经网络的英特尔数学内核库(Intel MKL-DNN)生成代码。
cfg.TargetLang ='C ++';cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn');
为策略评估功能设置示例输入值。要找到观察维度,请使用getObservationInfo
功能。在这种情况下,观测在四元素矢量。
argstr =“{1(4,1)}”;
使用代码生成Codegen.
功能。
代码生成('-config'那'CFG'那'evaluatePolicy'那'-args'argstr,“报告”);
此命令生成用于容纳深神经网络演员策略梯度剂C ++代码。
作为一个例子,产生用于在训练Q学习剂C代码在基本网格世界中训练强化学习代理.
装载训练有素的特工。
加载('basicGWQAgent.mat'那'qAgent')
创建该代理的策略评估功能。
generatePolicyFunction(qAgent)
此命令创建evaluatePolicy.m
文件,其中包含策略函数,以及agentData.mat
文件,其中包含经过训练的Q表值函数。对于给定的观察,策略函数使用Q表查找每个潜在操作的值函数。然后,策略函数选择价值函数最大的动作。
为策略评估功能设置示例输入值。要找到观察维度,请使用getObservationInfo
功能。在这种情况下,有一个单一的一个维观测(属于一组离散的可能值)。
argstr ='{[1]}';
配置Codegen.
函数来产生合适的可嵌入的C代码用于定位一个静态库,并输出文件夹设定为buildFolder
.
CFG = coder.config('LIB');outFolder =“buildFolder”;
生成C代码使用Codegen.
功能。
代码生成(“c”那“- d”倒转褶皱,'-config'那'CFG'那......'evaluatePolicy'那'-args'argstr,“报告”);