scalingLayer

Слой Scaling для агента или сети критика

Описание

Масштабирующийся слой линейно масштабирует и смещает входной массив U, предоставление выхода Y = Scale.*U + Bias. Можно включить этот слой в глубокие нейронные сети, которые вы задаете для агентов или критиков в агентах обучения с подкреплением. Этот слой полезен для масштабирования и перемещения выходных параметров нелинейных слоев, такой как tanhLayer и сигмоидальный.

Например, tanhLayer дает ограниченный выход, который падает между –1 и 1. Если ваша сеть агента выход имеет различные границы (как задано в спецификации агента), можно включать ScalingLayer как выход, чтобы масштабироваться и переключить сеть агента выход соответственно.

Параметры ScalingLayer объект не learnable.

Создание

Описание

sLayer = scalingLayer создает масштабирующийся слой со значениями свойств по умолчанию.

пример

sLayer = scalingLayer(Name,Value) свойства наборов с помощью пар "имя-значение". Например, scalingLayer('Scale',0.5) создает масштабирующийся слой, который масштабирует его вход 0,5. Заключите каждое имя свойства в кавычки.

Свойства

развернуть все

Имя слоя в виде вектора символов. Чтобы включать слой в график слоев, необходимо задать непустое уникальное имя слоя. Если вы обучаете серийную сеть с этим слоем и Name установлен в '', затем программное обеспечение автоматически присваивает имя к слою в учебное время.

Это свойство доступно только для чтения.

Описание слоя в виде вектора символов. Когда вы создаете масштабирующийся слой, можно использовать это свойство дать ему описание, которое помогает вам идентифицировать его цель.

Поэлементная шкала на входе к масштабирующемуся слою в виде одного из следующего:

  • Скаляр — Задает тот же масштабный коэффициент для всех элементов входного массива.

  • Массив с теми же размерностями как входной массив — Задает различные масштабные коэффициенты для каждого элемента входного массива.

Масштабирующийся слой берет вход U и генерирует выход Y = Scale.*U + Bias.

Поэлементное смещение на входе к масштабирующемуся слою в виде одного из следующего:

  • Скаляр — Задает то же смещение для всех элементов входного массива.

  • Массив с теми же размерностями как входной массив — Задает различное смещение для каждого элемента входного массива.

Масштабирующийся слой берет вход U и генерирует выход Y = Scale.*U + Bias.

Примеры

свернуть все

Создайте масштабирующийся слой, который преобразует входной массив U к выходному массиву Y = 0.1.*U - 0.4.

sLayer = scalingLayer('Scale',0.1,'Bias',-0.4)
sLayer = 
  ScalingLayer with properties:

     Name: 'scaling'
    Scale: 0.1000
     Bias: -0.4000

   Learnable Parameters
    No properties.

   State Parameters
    No properties.

  Show all properties

Подтвердите, что масштабирующийся слой масштабирует и возмещает входной массив как ожидалось.

predict(sLayer,[10,20,30])
ans = 1×3

    0.6000    1.6000    2.6000

Можно включить sLayer в сеть агента или сеть критика для обучения с подкреплением.

Примите что слой, предшествующий scalingLayer tanhLayer с тремя выходными параметрами, выровненными по первому измерению, и что вы хотите применить различный масштабный коэффициент и смещение каждому использование scalingLayer.

scale = [2.5 0.4 10]';
bias = [5 0 -50]';

Создайте scalingLayer объект.

sLayer = scalingLayer('Scale',scale,'Bias',bias);

Подтвердите, что масштабирующийся слой применяет правильную шкалу и значения смещения к массиву с ожидаемыми размерностями.

testData = [10 10 10]';
predict(sLayer,testData)
ans = 3×1

    30
     4
    50

Расширенные возможности

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

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