Класс LogCosh
Класс LogCosh вычисляет функцию потерь,
которая представляет собой логарифм гиперболического
косинуса разности между истинными и предсказанными
значениями. Эта функция потерь ведет себя как
среднеквадратичная ошибка вблизи нуля, но более
устойчива к выбросам. Первым параметром передаются
истинные значения, вторым - предсказанные.
Синтаксис
tf.keras.losses.LogCosh(
reduction='auto',
name='log_cosh'
)
Пример
Давайте вычислим функцию потерь между двумя тензорами:
import tensorflow as tf
y_true = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0])
y_pred = tf.constant([1.1, 2.2, 2.9, 4.1, 5.2])
loss = tf.keras.losses.LogCosh()
res = loss(y_true, y_pred)
print(res)
Результат выполнения кода:
tf.Tensor(0.018357739, shape=(), dtype=float32)
Пример
Давайте вычислим функцию потерь с параметром
reduction равным 'none', чтобы получить
потери для каждого элемента:
import tensorflow as tf
y_true = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0])
y_pred = tf.constant([1.1, 2.2, 2.9, 4.1, 5.2])
loss = tf.keras.losses.LogCosh(reduction='none')
res = loss(y_true, y_pred)
print(res)
Результат выполнения кода:
tf.Tensor([0.00499166 0.01993333 0.00500834 0.00499166 0.01986667], shape=(5,), dtype=float32)
Пример
Давайте вычислим функцию потерь с параметром
reduction равным 'sum':
import tensorflow as tf
y_true = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0])
y_pred = tf.constant([1.1, 2.2, 2.9, 4.1, 5.2])
loss = tf.keras.losses.LogCosh(reduction='sum')
res = loss(y_true, y_pred)
print(res)
Результат выполнения кода:
tf.Tensor(0.05479166, shape=(), dtype=float32)
Смотрите также
-
класс
MeanSquaredError,
который вычисляет среднеквадратичную ошибку -
класс
MeanAbsoluteError,
который вычисляет среднюю абсолютную ошибку -
класс
Huber,
который вычисляет функцию потерь Хьюбера -
класс
MeanAbsolutePercentageError,
который вычисляет среднюю абсолютную процентную ошибку