Метод call класса Loss
Метод call класса Loss выполняет
непосредственный расчет значения функции потерь.
Первым параметром метод принимает истинные значения
y_true, вторым - предсказанные значения
y_pred. Метод возвращает тензор со значением
потерь для каждого элемента батча. Именно этот метод
вызывается автоматически при обращении к объекту
функции потерь как к функции.
Синтаксис
loss_object.call(y_true, y_pred)
Пример
Давайте создадим функцию потерь
MeanSquaredError и вычислим ее значение
через метод call:
import tensorflow as tf
y_true = tf.constant([1, 2, 3, 4, 5])
y_pred = tf.constant([1, 2, 3, 4, 6])
loss_fn = tf.keras.losses.MeanSquaredError()
res = loss_fn.call(y_true, y_pred)
print(res)
Результат выполнения кода:
tf.Tensor(0.2, shape=(), dtype=float32)
Пример
Давайте вычислим потери для двумерных тензоров
с помощью функции MeanAbsoluteError:
import tensorflow as tf
y_true = tf.constant([[1, 2, 3], [4, 5, 6]])
y_pred = tf.constant([[1, 2, 3], [4, 5, 7]])
loss_fn = tf.keras.losses.MeanAbsoluteError()
res = loss_fn.call(y_true, y_pred)
print(res)
Результат выполнения кода:
tf.Tensor(0.16666667, shape=(), dtype=float32)
Пример
Давайте получим потери для каждого элемента батча,
указав параметр reduction равным none:
import tensorflow as tf
y_true = tf.constant([1, 2, 3, 4, 5])
y_pred = tf.constant([1, 2, 3, 4, 6])
loss_fn = tf.keras.losses.MeanSquaredError(
reduction=tf.keras.losses.Reduction.NONE
)
res = loss_fn.call(y_true, y_pred)
print(res)
Результат выполнения кода:
tf.Tensor([0. 0. 0. 0. 1.], shape=(5,), dtype=float32)
Смотрите также
-
класс
Loss,
который является базовым классом функций потерь -
метод
__call__,
который вызывает объект функции потерь как функцию -
метод
get_config,
который возвращает конфигурацию функции потерь -
метод
call,
который вычисляет значение функции потерь