培训强化学习代理后,您可以生成代码以部署最佳策略。您可以生成:
库达®使用GPU编码器的深层神经网络策略代码™
表、深度神经网络或线性基函数策略的C/C++代码,使用MATLAB®编码员™
支持在任何输入路径中使用前馈神经网络的万博1manbetx代理生成代码,前提是支持所有使用的层。使用递归神经网络(RNN)的连续动作PG、AC、PPO和SAC代理不支持代码生成。
有关培训强化学习代理的更多信息,请参阅培训强化学习代理.
要创建基于给定观察选择操作的策略评估函数,请使用生成策略函数
命令此命令生成一个包含策略评估函数的MATLAB脚本和一个包含最佳策略数据的MAT文件。
您可以使用GPU编码器或MATLAB编码器.
如果经过训练的最优策略使用深度神经网络,则可以使用GPU编码器为策略生成CUDA代码。有关支持的GPU的更多信息,请参阅万博1manbetxGPU版万博1manbetx本支持(并行计算工具箱)。有几种必需的和推荐的先决产品可用于为深度神经网络生成CUDA代码。有关更多信息,请参阅s manbetx 845安装必备产品s manbetx 845(GPU编码器)和设置必备产品s manbetx 845(GPU编码器).
并非所有深层神经网络层都支持GPU代码生成。有关支持层的列表,请参阅万博1manbetx万博1manbetx支持的网络、层和类(GPU编码器). 有关GPU代码生成的更多信息和示例,请参阅GPU编码器的深度学习(GPU编码器).
例如,为在中培训的策略梯度代理生成GPU代码培训PG代理以平衡车柱系统.
给训练有素的特工装上子弹。
装载(“MATLABCartpolePG.mat”,“代理人”)
为此代理创建策略评估函数。
generatePolicyFunction(代理)
此命令创建评估政策
包含策略函数的文件,以及agentData.mat
文件,其中包含经过训练的深层神经网络参与者。对于给定的观察,策略函数使用参与者网络评估每个潜在动作的概率。然后,策略函数根据这些概率随机选择动作。
您可以使用GPU编码器生成此网络的代码。例如,您可以生成与CUDA兼容的MEX函数。
配置编码基因
函数创建CUDA兼容的C++ MEX函数。
cfg=coder.gpuConfig(“墨西哥”); cfg.TargetLang=“C++”; cfg.DeepLearningConfig=coder.DeepLearningConfig(“cudnn”);
设置策略评估函数的示例输入值。要查找观察维度,请使用获取观测信息
作用在这种情况下,观察值位于四元素向量中。
argstr=“{one(4,1)}”;
使用编码基因
作用
编码基因(“-config”,“cfg”,“评估政策”,“-args”,argstr,“-报告”);
此命令生成MEX函数评估政策
.
您可以使用以下方法为表、深度神经网络或线性基函数策略生成C/C++代码:MATLAB编码器.
使用MATLAB编码器,您可以生成:
用于使用Q表、值表或线性基函数的策略的C/C++代码。有关通用C/C++代码生成的更多信息,请参见生成代码(MATLAB编码器).
使用深度神经网络的策略的C++代码。请注意,使用递归神经网络(RNN)的连续动作PG、AC、PPO和SAC代理不支持代码生成。有关受支持图层的列表,请参见万博1manbetx代码生成支持的网络和层万博1manbetx(MATLAB编码器)。有关详细信息,请参阅使用MATLAB编码器进行深入学习的先决条件(MATLAB编码器)和MATLAB编码器的深度学习(MATLAB编码器).
例如,为在中培训的策略梯度代理生成不依赖于第三方库的C代码培训PG代理以平衡车柱系统.
给训练有素的特工装上子弹。
装载(“MATLABCartpolePG.mat”,“代理人”)
为此代理创建策略评估函数。
generatePolicyFunction(代理)
此命令创建评估政策
包含策略函数的文件,以及agentData.mat
文件,其中包含经过训练的深层神经网络参与者。对于给定的观察,策略函数使用参与者网络评估每个潜在动作的概率。然后,策略函数根据这些概率随机选择动作。
配置编码基因
函数生成适合构建MEX文件的代码。
cfg=coder.config(“墨西哥”);
在配置对象上,将目标语言设置为C++,并设置深度学习配置
到没有一个
“。此选项不使用任何第三方库生成代码。
cfg.TargetLang=“C”; cfg.DeepLearningConfig=coder.DeepLearningConfig(“没有”);
设置策略评估函数的示例输入值。要查找观察维度,请使用获取观测信息
作用在这种情况下,观察值位于四元素向量中。
argstr=“{one(4,1)}”;
使用编码基因
作用
编码基因(“-config”,“cfg”,“评估政策”,“-args”,argstr,“-报告”);
此命令为包含深度神经网络角色的策略梯度代理生成C++代码。
作为例子,生成用于训练的策略梯度代理的C++代码。培训PG代理以平衡车柱系统使用“英特尔深度神经网络数学内核库”(MKL-DNN)。
给训练有素的特工装上子弹。
装载(“MATLABCartpolePG.mat”,“代理人”)
为此代理创建策略评估函数。
generatePolicyFunction(代理)
此命令创建评估政策
包含策略函数的文件,以及agentData.mat
文件,其中包含经过训练的深层神经网络参与者。对于给定的观察,策略函数使用参与者网络评估每个潜在动作的概率。然后,策略函数根据这些概率随机选择动作。
配置编码基因
函数生成适合构建MEX文件的代码。
cfg=coder.config(“墨西哥”);
在配置对象上,将目标语言设置为C++,并设置深度学习配置
到目标库的mkldnn
“。此选项使用“英特尔深度神经网络数学内核库”(英特尔MKL-DNN)生成代码。
cfg.TargetLang=“C++”; cfg.DeepLearningConfig=coder.DeepLearningConfig(“mkldnn”);
设置策略评估函数的示例输入值。要查找观察维度,请使用获取观测信息
作用在这种情况下,观察值位于四元素向量中。
argstr=“{one(4,1)}”;
使用编码基因
作用
编码基因(“-config”,“cfg”,“评估政策”,“-args”,argstr,“-报告”);
此命令为包含深度神经网络角色的策略梯度代理生成C++代码。
例如,为在中培训的Q-learning agent生成C代码在基本网格世界中训练强化学习Agent.
给训练有素的特工装上子弹。
装载(“basicGWQAgent.mat”,“qAgent”)
为此代理创建策略评估函数。
generatePolicyFunction(qAgent)
此命令创建评估政策
包含策略函数的文件,以及agentData.mat
文件,其中包含经过训练的Q表值函数。对于给定的观察,策略函数使用Q表查找每个潜在操作的值函数。然后,策略函数选择值函数最大的操作。
设置策略评估函数的示例输入值。要查找观察维度,请使用获取观测信息
作用在这种情况下,存在单个一维观测(属于一组离散的可能值)。
argstr='{[1]}';
配置编码基因
函数生成适用于静态库的可嵌入C代码,并将输出文件夹设置为构建文件夹
.
cfg=coder.config(“lib”); 外流器=“buildFolder”;
使用编码基因
作用
编码基因(“-c”,“-d”,外接器,“-config”,“cfg”,...“评估政策”,“-args”,argstr,“-报告”);