View source on GitHub
|
Computes the binary focal crossentropy loss.
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
)
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, there is no focal
effect on the binary crossentropy loss.
If apply_class_balancing == True, this function also takes into account a
weight balancing factor for the binary classes 0 and 1 as follows:
weight = alpha for class 1 (target == 1)
weight = 1 - alpha for class 0
where alpha is a float in the range of [0, 1].
Returns | |
|---|---|
Binary focal crossentropy loss value
with shape = [batch_size, d0, .. dN-1].
|
Example:
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,)lossarray([0.330, 0.206], dtype=float32)
View source on GitHub