class_docstr: 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
  
  Usage:
  
  >>> pinball = tfa.losses.PinballLoss(tau=.1)
  >>> loss = pinball([0., 0., 1., 1.], [1., 1., 1., 0.])
  >>> loss
  <tf.Tensor: shape=(), dtype=float32, numpy=0.475>
  
  Usage with the `tf.keras` API:
  
  >>> model = tf.keras.Model()
  >>> model.compile('sgd', loss=tfa.losses.PinballLoss(tau=.1))
  
  Args:
    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).
    reduction: (Optional) Type of `tf.keras.losses.Reduction` to apply to
      loss. Default value is `AUTO`. `AUTO` indicates that the reduction
      option will be determined by the usage context. For almost all cases
      this defaults to `SUM_OVER_BATCH_SIZE`.
      When used with `tf.distribute.Strategy`, outside of built-in training
      loops such as `tf.keras` `compile` and `fit`, using `AUTO` or
      `SUM_OVER_BATCH_SIZE` will raise an error. Please see
      https://www.tensorflow.org/alpha/tutorials/distribute/training_loops
      for more details on this.
    name: Optional name for the op.
  
  References:
    - https://en.wikipedia.org/wiki/Quantile_regression
    - https://projecteuclid.org/download/pdfview_1/euclid.bj/1297173840
code: def __init__(
      self,
      tau: FloatTensorLike = 0.5,
      reduction: str = tf.keras.losses.Reduction.AUTO,
      name: str = "pinball_loss",
  ):
      super().__init__(
          pinball_loss, reduction=reduction, name=name, tau=tau
      )
  
file_path: addons/tensorflow_addons/losses/quantiles.py
imports: import tensorflow
  from typeguard import typechecked
  from tensorflow_addons.utils.keras_utils import LossFunctionWrapper
  from tensorflow_addons.utils.types import TensorLike, FloatTensorLike
label_desc: Use image node_id 1 to create a new PinballLoss object from inherited base classes: LossFunctionWrapper with example: obj = PinballLoss(tau, reduction, name)