tensorflow / 2.9.1 / keras / metrics / binary_focal_crossentropy.html /

tf.keras.metrics.binary_focal_crossentropy

Computes the binary focal crossentropy loss.

According to Lin et al., 2018, it helps to apply a focal factor to down-weight easy examples and focus more on hard examples. By default, the focal tensor is computed as follows:

focal_factor = (1 - output)**gamma for class 1 focal_factor = output**gamma for class 0 where gamma is a focusing parameter. When gamma = 0, this function is equivalent to the binary crossentropy loss.

Standalone usage:

y_true = [[0, 1], [0, 0]]
y_pred = [[0.6, 0.4], [0.4, 0.6]]
loss = tf.keras.losses.binary_focal_crossentropy(y_true, y_pred, gamma=2)
assert loss.shape == (2,)
loss.numpy()
array([0.330, 0.206], dtype=float32)
Args
y_true Ground truth values, of shape (batch_size, d0, .. dN).
y_pred The predicted values, of shape (batch_size, d0, .. dN).
gamma A focusing parameter, default is 2.0 as mentioned in the reference.
from_logits Whether y_pred is expected to be a logits tensor. By default, we assume that y_pred encodes a probability distribution.
label_smoothing Float in [0, 1]. If higher than 0 then smooth the labels by squeezing them towards 0.5, i.e., using 1. - 0.5 * label_smoothing for the target class and 0.5 * label_smoothing for the non-target class.
axis The axis along which the mean is computed. Defaults to -1.
Returns
Binary focal crossentropy loss value. shape = [batch_size, d0, .. dN-1].

© 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/versions/r2.9/api_docs/python/tf/keras/metrics/binary_focal_crossentropy