scalingLayer

Слой масштабирования для сети актёра или критика

Описание

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

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

Параметры ScalingLayer объект не может быть усвоен.

Создание

Описание

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.

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

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

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

.
Введенный в R2019a