主要内容

setModel

设置策略或值函数表示的计算模型

    描述

    例子

    newrep.= setModel (oldrep.模型返回一个新的策略或值函数表示形式,newrep.,具有与原始表示法相同的配置,oldrep.的计算模型模型

    例子

    全部折叠

    创建具有连续动作空间的环境,并获得其观察和操作规范。对于此示例,请加载示例中使用的环境培训DDPG Agent控制双积分系统

    加载预定义的环境。

    env = rlPredefinedEnv (“双凝胶组连续”
    env = DoubleIntegratorContinuousAction with properties: Gain: 1 Ts: 0.1000 MaxDistance: 5 GoalThreshold: 0.0100 Q: [2x2 double] R: 0.0100 MaxForce: Inf State: [2x1 double]

    获得观察和行动规范。

    ObsInfo = GetobservationInfo(ENV);Actinfo = GetActionInfo(Env);

    根据环境观察和行动规范创建PPO代理。

    代理= rlPPOAgent (obsInfo actInfo);

    要修改强化学习代理中的深神经网络,您必须首先提取演员和批评者表示。

    演员= getActor(代理);评论家= getCritic(代理);

    从演员和评论家的表征中提取深度神经网络。

    ACTORNET = GETMODEL(演员);批评= getModel(评论家);

    网络是dlnetwork对象。来查看它们情节函数时,必须将它们转换为分层图对象。

    例如,查看actor网络。

    情节(layerGraph (actorNet))

    图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

    要验证网络,请使用analyzeNetwork.例如,验证批评网络。

    analyzeNetwork (criticNet)

    您可以修改演员和评论家网络,并将它们保存回代理。如果要修改网络,可以使用深层网络设计师要打开每个网络的应用程序,使用以下命令。

    DeepNetWorkDesigner(LayerGraph(批评))DeepNetWorkDesigner(层图(ActorRounet))

    深层网络设计师,修改网络。例如,您可以向网络添加额外的层。修改网络时,不要改变返回网络的输入和输出层GetModel..有关建筑网络的更多信息,请参阅用深度网络设计器构建网络

    验证修改的网络深层网络设计师,您必须点击分析DLNETWORK.下,分析部分。要将修改的网络结构导出到MATLAB®工作区,请生成用于创建新网络的代码并从命令行运行此代码。请勿使用导出选项深层网络设计师.有关如何生成和运行代码的示例,请参见使用深度网络设计师和使用图像观察创建代理

    对于本例,创建修改过的参与者和批评者网络的代码在CreateModifiedNetWorks.m.

    createModifiedNetworks

    每个修改的网络都包括额外的网络fullyConnectedLayerreluLayer在输出路径中。查看修改后的角色网络。

    绘图(ModifiedActornet)

    图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

    导出网络后,将网络插入演员和批评者表示。

    Actor = SetModel(演员,ModifiedActornet);评论家= setmodel(评论家,修改克里米特);

    最后,在演员和批评者中插入修改的演员和批评者表示。

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

    输入参数

    全部折叠

    策略或value函数表示,指定为以下之一:

    要创建策略或value函数表示,请使用以下方法之一。

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

    • 使用。从代理获取现有值函数表示getCritic

    • 使用代理商使用的现有策略表示getActor

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

    • 深神经网络定义为一系列对象,分层图对象,DAGNetwork对象,或dlnetwork目的。输入和输出层模型必须具有与网络返回的网络相同的名称和维度GetModel.对于同一表示。这里,输出层是在输出损耗层之前立即的层。

    • rlTable具有与所定义的表模型相同尺寸的对象newrep.

    • 1-by-2单元阵列,包含自定义基本函数的函数句柄和基本函数参数。

    在指定新模型时,必须使用与在newrep.

    请注意

    对于具有多个评论家的代理商,如TD3和SAC代理商,您必须致电setModel为每个批评者单独表示,而不是致电setModel返回的数组getCritic

    批评者= getCritic (myTD3Agent);%修改批评网络。批评者(1)= SetModel(批评者(1),批评1);批评者(2)= SetModel(批评者(2),批评者2);mytd3agent = setcritic(mytd3agent,批评者);

    输出参数

    全部折叠

    新的策略或值函数表示,返回为与oldrep..除了新的计算模型,newrep.是一样的oldrep.

    介绍了R2020b