scalingLayer

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

Описание

ScalingLayer слой глубокой нейронной сети, который линейно масштабирует и смещает входной массив 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

  Show all properties

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

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

    0.6000    1.6000    2.6000

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

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

scale = reshape([2.5 0.4 10],[1 1 3]);
bias = reshape([5 0 -50],[1 1 3]);

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

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

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

testData = reshape([10 10 10],[1 1 3]);
predict(sLayer,testData)
ans = 
ans(:,:,1) =

    30


ans(:,:,2) =

     4


ans(:,:,3) =

    50

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

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

Введенный в R2019a