РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
221 of 824 menu

Класс LayerNormalization

Класс LayerNormalization применяет нормализацию к активациям предыдущего слоя. В отличие от BatchNormalization, нормализация происходит по последней оси тензора для каждого примера отдельно, а не по батчу. Это делает слой удобным для рекуррентных и трансформерных архитектур. Первым параметром передается объект axis (по умолчанию -1) - ось нормализации. Параметр epsilon задает малое число для стабильности вычислений, center и scale отвечают за обучаемые сдвиг и масштаб, а beta_initializer, gamma_initializer и beta_regularizer, gamma_regularizer управляют их инициализацией и регуляризацией.

Синтаксис

tf.keras.layers.LayerNormalization( axis=-1, epsilon=0.001, center=True, scale=True, beta_initializer="zeros", gamma_initializer="ones", beta_regularizer=None, gamma_regularizer=None )

Пример

Давайте создадим слой нормализации и применим его к двумерному тензору:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.LayerNormalization() t = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) res = layer(t) print(res)

Результат выполнения кода:

tf.Tensor( [[-1.2247449 0. 1.2247449] [-1.2247449 0. 1.2247449]], shape=(2, 3), dtype=float32)

Пример

Давайте создадим слой с отключенным масштабом и сдвигом, передав параметры center и scale:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.LayerNormalization(center=False, scale=False) t = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0]) res = layer(t) print(res)

Результат выполнения кода:

tf.Tensor([-1.4142135 -0.70710677 0. 0.70710677 1.4142135], shape=(5,), dtype=float32)

Пример

Давайте встроим слой LayerNormalization в модель Keras и выполним прямой проход:

import tensorflow as tf tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Dense(4, activation="relu"), tf.keras.layers.LayerNormalization(), tf.keras.layers.Dense(2) ]) t = tf.constant([[1.0, 2.0, 3.0]]) res = model(t) print(res)

Результат выполнения кода:

tf.Tensor([[-0.53208035 0.52563214]], shape=(1, 2), dtype=float32)

Смотрите также

  • класс BatchNormalization,
    который нормализует активации по батчу
  • класс GroupNormalization,
    который нормализует активации по группам каналов
  • класс UnitNormalization,
    который нормализует каждый вектор до единичной длины
  • класс Dense,
    который создает полносвязный слой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить