Spec-Zone.ru › TensorFlow

tf.keras.losses.binary_focal_crossentropy

Вычисляет функцию потерь бинарной фокальной кросс-энтропии.

Просмотреть псевдонимы

Основные псевдонимы

tf.keras.metrics.binary_focal_crossentropy

tf.keras.losses.binary_focal_crossentropy(
    y_true,
    y_pred,
    apply_class_balancing=False,
    alpha=0.25,
    gamma=2.0,
    from_logits=False,
    label_smoothing=0.0,
    axis=-1
)

Согласно работе Lin и др., 2018, полезно применять фокальный множитель, чтобы уменьшить вес простых примеров и уделять больше внимания сложным. По умолчанию фокальный тензор вычисляется следующим образом:

focal_factor = (1 - output) ** gamma для класса 1 focal_factor = output ** gamma для класса 0, где gamma — параметр фокусировки. Когда gamma = 0, фокальный эффект на бинарную кросс-энтропию отсутствует.

Если apply_class_balancing == True, эта функция также учитывает коэффициент балансировки весов для бинарных классов 0 и 1 следующим образом:

weight = alpha для класса 1 (target == 1) weight = 1 - alpha для класса 0, где alpha — число с плавающей запятой в диапазоне [0, 1].

Аргументы
y_true Истинные значения формы (batch_size, d0, .. dN).
y_pred Предсказанные значения формы (batch_size, d0, .. dN).
apply_class_balancing Логическое значение, определяющее, следует ли применять балансировку весов для бинарных классов 0 и 1.
alpha Коэффициент балансировки весов для класса 1; по умолчанию — 0.25, как указано в источнике. Вес класса 0 равен 1.0 - alpha.
gamma Параметр фокусировки; по умолчанию — 2.0, как указано в источнике.
from_logits Определяет, ожидается ли, что y_pred будет тензором логитов. По умолчанию предполагается, что y_pred кодирует распределение вероятностей.
label_smoothing Число с плавающей запятой в [0, 1]. Если значение > 0, метки сглаживаются путем их смещения к 0.5, то есть для целевого класса используется 1. - 0.5 * label_smoothing, а для нецелевого — 0.5 * label_smoothing.
axis Ось, вдоль которой вычисляется среднее значение. По умолчанию — -1.
Возвращает
Значение функции потерь бинарной фокальной кросс-энтропии формы = [batch_size, d0, .. dN-1].

Пример:

y_true = [[0, 1], [0, 0]]
y_pred = [[0.6, 0.4], [0.4, 0.6]]
loss = keras.losses.binary_focal_crossentropy(
       y_true, y_pred, gamma=2)
assert loss.shape == (2,)
loss
array([0.330, 0.206], dtype=float32)

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/losses/binary_focal_crossentropy

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API