exponenta event banner

scalingLayer

Уровень масштабирования для сети актеров или критиков

Описание

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

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

Параметры ScalingLayer объекты не поддаются изучению.

Создание

Описание

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

пример

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

Свойства

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

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

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

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

Масштабирование по элементам на входе в слой масштабирования, указанное как одно из следующих значений:

  • Скаляр (Scalar) - задает одинаковый масштабный коэффициент для всех элементов входного массива.

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

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

Смещение по элементам на входе в слой масштабирования, указанное как одно из следующих значений:

  • Скаляр (Scalar) - задает одинаковое смещение для всех элементов входного массива.

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

Масштабирующий слой принимает входные данные 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

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

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

.
Представлен в R2019a