导入神经网络模型
要创建用于强化学习的函数逼近器,您可以使用深度学习工具箱网络导入功能导入预训练的深度神经网络或深度神经网络层架构。您可以导入:
开放神经网络交换(ONNX™)模型,需要深度学习工具箱转换器的ONNX模型格式支持包软件。万博1manbetx欲了解更多信息,
importONNXLayers
.TensorFlow™-Keras网络,需要TensorFlow模型的深度学习工具箱转换器万博1manbetx支持软件包软件。有关更多信息,请参见
importKerasLayers
.Caffe卷积网络,需要深度学习工具箱导入Caffe模型万博1manbetx支持软件包软件。有关更多信息,请参见
importCaffeLayers
.
导入深度神经网络后,可以创建参与者或评论家对象,例如rlQValueFunction
或rlDiscreteCategoricalActor
.
当您导入深度神经网络架构时,请考虑以下内容。
导入的网络体系结构输入和输出层的维度必须与环境中相应的操作、观察或奖励维度的维度相匹配。
导入网络架构后,需要设置输入层和输出层的名称与对应的动作和观察规范的名称相匹配。
有关强化学习支持的深度神经网络架构的更多信息,请参见万博1manbetx创建策略和值函数.
导入演员和评论家的图像观察应用
例如,假设您有一个具有50 × 50灰度图像观测信号和连续动作空间的环境。要训练策略梯度代理,您需要以下函数逼近器,它们都必须具有单个50 × 50图像输入观察层和单个标量输出值。
演员—根据当前观测值选择动作值
评论家-根据当前的观察估计预期的长期回报
另外,假设你有以下网络架构要导入:
一个深度神经网络体系结构,具有50 × 50的图像输入层和标量输出层,以ONNX格式保存(
criticNetwork.onnx
).一个深度神经网络架构,具有50 × 50的图像输入层和标量输出层,以ONNX格式保存(
actorNetwork.onnx
).
要导入评论家和演员网络,请使用importONNXLayers
函数,而不指定输出层。
criticNetwork = importONNXLayers(“criticNetwork.onnx”);actorNetwork = importONNXLayers(“actorNetwork.onnx”);
这些命令生成一个警告,说明在添加输出层之前网络是可训练的。当您使用导入的网络创建演员或评论家时,强化学习工具箱™软件会自动为您添加输出层。
在导入网络之后,创建参与者和评论家函数逼近器。为此,首先从环境中获得观察和操作规范。
obsInfo = getObservationInfo(env);actInfo = getActionInfo(env);
创建评论家,指定评论家网络输入层的名称作为观察名称。因为评论家网络有一个单一的观察输入和一个单一的动作输出,所以使用值函数。
评论= rlValueFunction(批评网络,obsInfo,...“ObservationInputNames”, {criticNetwork.Layers (1) . name});
创建参与者,指定参与者网络输入层的名称作为观察名称,参与者网络的输出层作为观察名称。由于行动者网络只有单个标量输出,所以使用连续的确定性行动者。
actor = rlContinuousDeterministicActor(actorNetwork,obsInfo,actInfo,...“ObservationInputNames”, {actorNetwork.Layers (1) . name});
然后你可以: