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)

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.

Binary focal crossentropy loss value. shape = [batch_size, d0, .. dN-1].