Warning: This project is deprecated. TensorFlow Addons has stopped development, The project will only be providing minimal maintenance releases until May 2024. See the full announcement here or on github.


Computes the pinball loss between y_true and y_pred.

loss = maximum(tau * (y_true - y_pred), (tau - 1) * (y_true - y_pred))

In the context of regression this loss yields an estimator of the tau conditional quantile.

See: https://en.wikipedia.org/wiki/Quantile_regression


loss = tfa.losses.pinball_loss([0., 0., 1., 1.],
[1., 1., 1., 0.], tau=.1)
<tf.Tensor: shape=(), dtype=float32, numpy=0.475>

y_true Ground truth values. shape = [batch_size, d0, .. dN]
y_pred The predicted values. shape = [batch_size, d0, .. dN]
tau (Optional) Float in [0, 1] or a tensor taking values in [0, 1] and shape = [d0,..., dn]. It defines the slope of the pinball loss. In the context of quantile regression, the value of tau determines the conditional quantile level. When tau = 0.5, this amounts to l1 regression, an estimator of the conditional median (0.5 quantile).

pinball_loss 1-D float Tensor with shape [batch_size].