Функция nn.batch_normalization
Функция nn.batch_normalization применяет пакетную нормализацию к входному тензору.
Первым параметром передаётся входной тензор x, который необходимо нормализовать.
Вторым параметром передаётся среднее значение mean, третьим - дисперсия variance.
Четвёртым параметром передаётся смещение offset, а пятым - масштаб scale.
Параметр variance_epsilon задаёт небольшое значение для избежания деления на ноль.
Функция возвращает нормализованный тензор той же формы, что и входной.
Синтаксис
tf.nn.batch_normalization(
x,
mean,
variance,
offset,
scale,
variance_epsilon
)
Пример
Давайте выполним пакетную нормализацию для тензора с известными средним и дисперсией:
import tensorflow as tf
t = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0])
mean = tf.constant(3.0)
variance = tf.constant(2.0)
offset = tf.constant(0.0)
scale = tf.constant(1.0)
res = tf.nn.batch_normalization(
t,
mean,
variance,
offset,
scale,
1e-5
)
print(res)
Результат выполнения кода:
tf.Tensor([-1.4142134 -0.7071067 0. 0.7071067 1.4142134], shape=(5,), dtype=float32)
Пример
Давайте применим пакетную нормализацию с масштабом и смещением:
import tensorflow as tf
t = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0])
mean = tf.constant(3.0)
variance = tf.constant(2.0)
offset = tf.constant(1.0)
scale = tf.constant(2.0)
res = tf.nn.batch_normalization(
t,
mean,
variance,
offset,
scale,
1e-5
)
print(res)
Результат выполнения кода:
tf.Tensor([-1.8284271 -0.4142135 1. 2.4142137 3.828427 ], shape=(5,), dtype=float32)
Пример
Давайте выполним пакетную нормализацию для двумерного тензора:
import tensorflow as tf
t = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
mean = tf.constant([2.5, 3.5, 4.5])
variance = tf.constant([1.0, 1.0, 1.0])
offset = tf.constant([0.0, 0.0, 0.0])
scale = tf.constant([1.0, 1.0, 1.0])
res = tf.nn.batch_normalization(
t,
mean,
variance,
offset,
scale,
1e-5
)
print(res)
Результат выполнения кода:
tf.Tensor(
[[-1.5 -1.5 -1.5]
[ 1.5 1.5 1.5]], shape=(2, 3), dtype=float32)
Смотрите также
-
функцию
moments,
которая вычисляет среднее и дисперсию по осям тензора -
функцию
normalize_moments,
которая нормализует значения по среднему и дисперсии -
функцию
l2_normalize,
которая выполняет L2-нормализацию по заданной оси -
функцию
dropout,
которая применяет dropout для регуляризации нейронной сети