Функция nn.moments
Функция nn.moments вычисляет среднее значение и дисперсию
элементов тензора по заданным осям. Первым параметром
функция принимает входной тензор. Вторым параметром передаются
оси, по которым производится вычисление. Третьим параметром
можно передать логическое значение, определяющее, следует ли
оставлять уменьшенные размерности. Функция возвращает кортеж
из двух тензоров: среднего значения и дисперсии.
Синтаксис
tf.nn.moments(x, axes, [keepdims], [name])
Пример
Давайте вычислим среднее значение и дисперсию для одномерного тензора:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5], dtype=tf.float32)
mean, variance = tf.nn.moments(t, axes=[0])
print(mean)
print(variance)
Результат выполнения кода:
tf.Tensor(3.0, shape=(), dtype=float32)
tf.Tensor(2.0, shape=(), dtype=float32)
Пример
Давайте вычислим моменты для двумерного тензора
по оси 0:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.float32)
mean, variance = tf.nn.moments(t, axes=[0])
print(mean)
print(variance)
Результат выполнения кода:
tf.Tensor([2.5 3.5 4.5], shape=(3,), dtype=float32)
tf.Tensor([2.25 2.25 2.25], shape=(3,), dtype=float32)
Пример
Давайте вычислим моменты для двумерного тензора
по оси 1 с сохранением размерности:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.float32)
mean, variance = tf.nn.moments(t, axes=[1], keepdims=True)
print(mean)
print(variance)
Результат выполнения кода:
tf.Tensor(
[[2.]
[5.]], shape=(2, 1), dtype=float32)
tf.Tensor(
[[0.6666667]
[0.6666667]], shape=(2, 1), dtype=float32)
Смотрите также
-
функцию
batch_normalization,
которая выполняет пакетную нормализацию -
функцию
sufficient_statistics,
которая вычисляет достаточные статистики -
функцию
normalize_moments,
которая нормализует по среднему и дисперсии -
функцию
l2_normalize,
которая выполняет L2-нормализацию