主要内容

setModel

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

    描述

    例子

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

    例子

    全部折叠

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

    加载预定义的环境。

    env = rlPredefinedEnv (“DoubleIntegrator,连续”
    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(演员);criticNet = getModel(评论家);

    要查看网络,请使用情节功能。例如,查看网络的演员。

    图(actorNet)

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

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

    deepNetworkDesigner (criticNet) deepNetworkDesigner (actorNet)

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

    要将修改后的网络结构导出到MATLAB®工作空间,请生成用于创建新网络的代码,并从命令行运行此代码。不使用导出选项深网络设计师.有关如何生成和运行代码的示例,请参见创建代理使用Deep网络设计者和火车站使用图像观察

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

    createModifiedNetworks

    各改性网络包括附加的fullyConnectedLayerreluLayer在输出路径中。查看修改后的角色网络。

    图(modifiedActorNet)

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

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

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

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

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

    输入参数

    全部折叠

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

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

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

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

    • 使用获得的代理现行的政策表示getActor

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

    • 定义为一个阵列深层神经网络对象,layerGraph对象,DAGNetwork对象,或dlnetwork目的。的输入和输出层模型必须具有相同的名称,尺寸等返回的网络getModel对于相同的表示。在此,输出层是输出损耗层之前紧接在层。

    • rlTable具有相同尺寸的对象定义表中的模型newRep

    • 1×2单元阵列,它包含一个自定义的基函数和基函数的参数的函数的手柄。

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

    请注意

    对于不止一位评论家剂,如TD3和SAC代理,则必须调用setModel每个评论家表示单独,而不是调用setModel返回的数组getCritic

    批评者= getCritic (myTD3Agent);%修改评论家网络。评论家(1)=则setModel(评论家(1),criticNet1);评论家(2)=则setModel(评论家(2),criticNet2);myTD3Agent = setCritic(myTD3Agent,评论家);

    输出参数

    全部折叠

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

    介绍了R2020b