getModel

Получите вычислительную модель из политики или представления функции ценности

    Синтаксис

    Описание

    пример

    model = getModel(rep) возвращает вычислительную модель, используемую политикой или представлением функции ценности rep.

    Примеры

    свернуть все

    Создайте окружение с непрерывным пространством действий и получите его наблюдение и спецификации действия. В данном примере загружает окружение, используемую в примере Train DDPG Agent для управления системой Double Integrator System.

    Загрузите предопределённое окружение.

    env = rlPredefinedEnv("DoubleIntegrator-Continuous")
    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 из окружения наблюдений и спецификаций действия.

    agent = rlPPOAgent(obsInfo,actInfo);

    Чтобы изменить глубокие нейронные сети в агенте обучения с подкреплением, необходимо сначала извлечь представления актёра и критика.

    actor = getActor(agent);
    critic = getCritic(agent);

    Извлеките глубокие нейронные сети как из представлений актёра, так и критика.

    actorNet = getModel(actor);
    criticNet = getModel(critic);

    Чтобы просмотреть сеть, используйте plot функция. Для примера просмотрите сеть актёра.

    plot(actorNet)

    Figure contains an axes. The axes contains an object of type graphplot.

    Можно модифицировать сети актёра и критика и сохранить их обратно агенту. Чтобы изменить сети, можно использовать приложение Deep Network Designer. Чтобы открыть приложение для каждой сети, используйте следующие команды.

    deepNetworkDesigner(criticNet)
    deepNetworkDesigner(actorNet)
    

    В Deep Network Designer измените сети. Например, можно добавить дополнительные слои к сети. Когда вы изменяете сети, не изменяйте входной и выходной слои сетей, возвращаемых getModel. Дополнительные сведения о построении сетей см. в разделе Создание сетей с помощью Deep Network Designer.

    Чтобы экспортировать измененные структуры сети в рабочую область MATLAB ®, сгенерируйте код для создания новых сетей и запустите этот код из командной строки. Не используйте опцию экспорта в Deep Network Designer. Для примера, который показывает, как сгенерировать и запустить код, смотрите Создание агента с использованием Deep Network Designer и Train с использованием наблюдений изображений.

    В данном примере код для создания измененных сетей актёра и критика находится в createModifiedNetworks.m.

    createModifiedNetworks

    Каждая из измененных сетей включает дополнительную fullyConnectedLayer и reluLayer в их выходном пути. Просмотр измененной сети актёра.

    plot(modifiedActorNet)

    Figure contains an axes. The axes contains an object of type graphplot.

    После экспорта сетей вставьте сети в представления актёра и критика.

    actor = setModel(actor,modifiedActorNet);
    critic = setModel(critic,modifiedCriticNet);

    Наконец, вставьте измененные представления актёра и критика в объекты актёра и критика.

    agent = setActor(agent,actor);
    agent = setCritic(agent,critic);

    Входные параметры

    свернуть все

    Представление политики или функции ценности, заданное как одно из следующего:

    Чтобы создать представление политики или функции ценности, используйте один из следующих методов:

    • Создайте представление с помощью соответствующего объекта представления.

    • Получите существующее представление функции ценности от агента, используя getCritic.

    • Получите существующее представление политики от агента, используя getActor.

    Примечание

    Для агентов с более чем одним критиком, таких как TD3 и SAC, необходимо вызвать getModel для каждого представления критика индивидуально, а не вызов getModel для массива возвращенных getCritic.

    critics = getCritic(myTD3Agent);
    criticNet1 = getModel(critics(1));
    criticNet2 = getModel(critics(2));

    Выходные аргументы

    свернуть все

    Вычислительная модель, возвращенная как одно из следующего:

    • Глубокая нейронная сеть, заданная как DAGNetwork объект

    • rlTable объект

    • массив ячеек 1 на 2, который содержит указатель на функцию для пользовательской функции базиса и параметры базиса функций

    Введенный в R2020b
    Для просмотра документации необходимо авторизоваться на сайте