setModel
制定政策或值函数计算模型表示
描述
例子
在强化学习修改深层神经网络代理
创造一个环境,一个连续的操作空间和获得其观察和操作规范。对于这个示例,负载在示例中使用的环境火车DDPG剂来控制双积分器系统。
负载预定义的环境。
env = rlPredefinedEnv (“DoubleIntegrator-Continuous”)
env = DoubleIntegratorContinuousAction属性:增加:1 Ts: 0.1000 MaxDistance: 5 GoalThreshold: 0.0100问:[2 x2双]R: 0.0100 MaxForce:正状态:[2 x1双)
获得观察和操作规范。
obsInfo = getObservationInfo (env);actInfo = getActionInfo (env);
创建PPO代理从环境中观察和操作规范。
代理= rlPPOAgent (obsInfo actInfo);
在强化学习修改深层神经网络代理,您必须首先提取演员和评论家表示。
演员= getActor(代理);评论家= getCritic(代理);
从演员和提取深层神经网络评论家表示。
actorNet = getModel(演员);criticNet = getModel(批评);
网络是dlnetwork
对象。查看使用情节
功能,您必须将它们转换为layerGraph
对象。
例如,查看演员网络。
情节(layerGraph (actorNet))
验证一个网络,使用analyzeNetwork
。例如,验证网络评论家。
analyzeNetwork (criticNet)
您可以修改演员和评论家网络和拯救他们回代理。修改网络,您可以使用深层网络设计师为每个网络应用。打开应用程序,使用下面的命令。
deepNetworkDesigner (layerGraph (criticNet) deepNetworkDesigner (layerGraph (actorNet))
在深层网络设计师,修改网络。例如,您可以添加额外的层网络。当你修改网络,不改变网络的输入和输出层返回的getModel
。建立网络的更多信息,见构建网络与深度网络设计师。
验证修改后的网络深层网络设计师,你必须点击分析了dlnetwork下,分析部分。出口MATLAB®工作区中修改后的网络结构,生成代码来创建新网络和从命令行运行这段代码。不使用导出选项深层网络设计师。为例,展示了如何生成并运行代码,看看使用深度网络设计师创建代理和培训使用图像的观察。
对于这个示例,创建的代码修改后的演员兼评论家网络createModifiedNetworks.m
。
createModifiedNetworks
每个网络包括一个额外的修改fullyConnectedLayer
和reluLayer
在他们的输出路径。查看修改后的演员网络。
情节(modifiedActorNet)
出口网络后,网络插入演员和评论家表示。
演员= setModel(演员,modifiedActorNet);评论家= setModel(评论家,modifiedCriticNet);
最后,插入修改演员的演员兼批评家和评论家表示对象。
代理= setActor(代理、演员);代理= setCritic(代理、批评);
输入参数
oldRep
- - - - - -政策或价值函数表示
rlValueRepresentation
对象|rlQValueRepresentation
对象|rlDeterministicActorRepresentation
对象|rlStochasticActorRepresentation
对象
政策或价值函数表示,指定为以下之一:
rlValueRepresentation
对象-值函数表示rlQValueRepresentation
对象-核反应能量函数表示rlDeterministicActorRepresentation
对象——演员表示确定的行动rlStochasticActorRepresentation
对象——演员表示随机行为
创建一个策略或价值函数表示,使用下列方法之一。
模型
- - - - - -计算模型
的数组层
对象|layerGraph
对象|DAGNetwork
对象|dlnetwork
对象|rlTable
对象|1×2单元阵列
计算模型中,指定为以下之一:
深层神经网络定义为一个数组
层
对象,layerGraph
对象,DAGNetwork
对象,或dlnetwork
对象。输入和输出层模型
必须具有相同的名称和尺寸返回的网络吗getModel
同样的表示。在这里,输出层是一层一层产出损失之前立即。rlTable
对象模型中定义相同的维度表newRep
。1×2单元阵列包含函数处理为一个自定义的基函数和基函数的参数。
当指定一个新的模型,您必须使用相同类型的模型作为一个已经定义newRep
。
请注意
代理有超过一位评论家,如TD3和囊药物,您必须调用setModel
单独为每个评论家表示,而不是打电话setModel
返回的数组getCritic
。
批评者= getCritic (myTD3Agent);%修改评论家网络。批评(1)= setModel(批评者(1),criticNet1);评论(2)= setModel(批评者(2),criticNet2);myTD3Agent = setCritic (myTD3Agent、批评);
输出参数
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。