Класс Normalization
Класс Normalization представляет собой слой, который выполняет нормализацию входных данных, используя статистику, вычисленную во время обучения. В отличие от BatchNormalization, этот слой сохраняет скользящее среднее и дисперсию для каждого признака, что позволяет применять его в задачах, где пакетная нормализация неэффективна. Слой принимает на вход тензор и возвращает нормализованный тензор той же формы.
Синтаксис
tf.keras.layers.Normalization(axis=-1, mean=None, variance=None, **kwargs)
Пример
Давайте создадим слой нормализации и применим его к данным после адаптации:
import tensorflow as tf
tf.random.set_seed(0)
layer = tf.keras.layers.Normalization(axis=-1)
data = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
layer.adapt(data)
t = layer(data)
print(t)
Результат выполнения кода:
tf.Tensor(
[[-1.2247449 -1.2247449]
[ 0. 0. ]
[ 1.2247449 1.2247449]], shape=(3, 2), dtype=float32)
Пример
Давайте создадим слой нормализации с предустановленными средним и дисперсией:
import tensorflow as tf
layer = tf.keras.layers.Normalization(
axis=-1,
mean=[1.0, 2.0],
variance=[1.0, 1.0]
)
data = tf.constant([[1.0, 2.0], [3.0, 4.0]])
t = layer(data)
print(t)
Результат выполнения кода:
tf.Tensor(
[[0. 0.]
[2. 2.]], shape=(2, 2), dtype=float32)
Смотрите также
-
слой
BatchNormalization,
который нормализует активации по батчу -
слой
LayerNormalization,
который нормализует активации по слою -
слой
GroupNormalization,
который нормализует активации по группам каналов -
слой
Dense,
который создает полносвязный слой