主要内容

setModel

制定政策或值函数计算模型表示

    描述

    例子

    newRep= setModel (oldRep,模型)返回一个新的政策或价值函数表示,newRep与原始表示相同的配置,oldRep,在指定的计算模型模型

    例子

    全部折叠

    创造一个环境,一个连续的操作空间和获得其观察和操作规范。对于这个示例,负载在示例中使用的环境火车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))

    图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

    验证一个网络,使用analyzeNetwork。例如,验证网络评论家。

    analyzeNetwork (criticNet)

    您可以修改演员和评论家网络和拯救他们回代理。修改网络,您可以使用深层网络设计师为每个网络应用。打开应用程序,使用下面的命令。

    deepNetworkDesigner (layerGraph (criticNet) deepNetworkDesigner (layerGraph (actorNet))

    深层网络设计师,修改网络。例如,您可以添加额外的层网络。当你修改网络,不改变网络的输入和输出层返回的getModel。建立网络的更多信息,见构建网络与深度网络设计师

    验证修改后的网络深层网络设计师,你必须点击分析了dlnetwork下,分析部分。出口MATLAB®工作区中修改后的网络结构,生成代码来创建新网络和从命令行运行这段代码。不使用导出选项深层网络设计师。为例,展示了如何生成并运行代码,看看使用深度网络设计师创建代理和培训使用图像的观察

    对于这个示例,创建的代码修改后的演员兼评论家网络createModifiedNetworks.m

    createModifiedNetworks

    每个网络包括一个额外的修改fullyConnectedLayerreluLayer在他们的输出路径。查看修改后的演员网络。

    情节(modifiedActorNet)

    图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

    出口网络后,网络插入演员和评论家表示。

    演员= setModel(演员,modifiedActorNet);评论家= setModel(评论家,modifiedCriticNet);

    最后,插入修改演员的演员兼批评家和评论家表示对象。

    代理= setActor(代理、演员);代理= setCritic(代理、批评);

    输入参数

    全部折叠

    政策或价值函数表示,指定为以下之一:

    创建一个策略或价值函数表示,使用下列方法之一。

    • 创建一个使用对应的表示表示对象。

    • 获得从一个代理使用现有值函数表示getCritic

    • 获取现有的政策表示从一个代理使用getActor

    计算模型中,指定为以下之一:

    • 深层神经网络定义为一个数组对象,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、批评);

    输出参数

    全部折叠

    新政策或价值函数表示,作为代表返回相同类型的对象oldRep。除了新的计算模型,newRep是一样的oldRep

    介绍了R2020b