Функция nn.compute_average_loss
Функция nn.compute_average_loss вычисляет среднее значение переданных потерь. Первым параметром функция принимает тензор с потерями, вторым - количество элементов в батче global_batch_size, третьим - количество реплик num_replicas. Если параметр global_batch_size не задан, то он вычисляется как произведение размера батча на количество реплик. Функция часто используется при вычислении регуляризационных потерь в моделях.
Синтаксис
tf.nn.compute_average_loss(per_example_loss, [global_batch_size], [num_replicas])
Пример
Давайте вычислим среднюю потерю для тензора из значений 1, 2, 3, 4, 5 с размером батча 5:
import tensorflow as tf
losses = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0])
res = tf.nn.compute_average_loss(losses, global_batch_size=5)
print(res)
Результат выполнения кода:
tf.Tensor(3.0, shape=(), dtype=float32)
Пример
Давайте вычислим среднюю потерю для двумерного тензора с потерями по двум примерам:
import tensorflow as tf
losses = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
res = tf.nn.compute_average_loss(losses, global_batch_size=2)
print(res)
Результат выполнения кода:
tf.Tensor(10.5, shape=(), dtype=float32)
Пример
Давайте вычислим среднюю потерю с учетом количества реплик 2:
import tensorflow as tf
losses = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0])
res = tf.nn.compute_average_loss(losses, global_batch_size=10, num_replicas=2)
print(res)
Результат выполнения кода:
tf.Tensor(1.5, shape=(), dtype=float32)
Смотрите также
-
функцию
scale_regularization_loss,
которая масштабирует регуляризационную потерю -
функцию
softmax_cross_entropy_with_logits,
которая вычисляет кросс-энтропию с логитами -
функцию
sigmoid_cross_entropy_with_logits,
которая вычисляет сигмоидную кросс-энтропию -
функцию
weighted_cross_entropy_with_logits,
которая вычисляет взвешенную кросс-энтропию