class_docstr: y_range: Used specifically for regression. = None for classification.
class_docstr_tok: ["y_range",":","Used","specifically","for","regression",".","=","None","for","classification","."]
code: def huber_pinball_loss(self, input_data, target_data):
      error_data = target_data.contiguous().reshape(-1, 1) - input_data
      if self.alpha == 0.0:
          loss_data = torch.max(
              self.quantile_levels * error_data,
              (self.quantile_levels - 1) * error_data,
          )
          return loss_data.mean()
  
      loss_data = torch.where(
          torch.abs(error_data) < self.alpha,
          0.5 * error_data * error_data,
          self.alpha * (torch.abs(error_data) - 0.5 * self.alpha),
      )
      loss_data /= self.alpha
      scale = torch.where(
          error_data >= 0,
          torch.ones_like(error_data) * self.quantile_levels,
          torch.ones_like(error_data) * (1 - self.quantile_levels),
      )
      loss_data *= scale
      return loss_data.mean()
  
file_path: autogluon/tabular/src/autogluon/tabular/models/tabular_nn/torch/torch_network_modules.py
imports: import logging
  import numpy
  import torch
  import torch.nn
  from autogluon.core.constants import BINARY, MULTICLASS, QUANTILE, REGRESSION, SOFTCLASS
  from ..utils.nn_architecture_utils import get_embed_sizes
label_desc: Use image node_id 5 for calling the EmbedNet obj's underlying member method code with example usage: obj.huber_pinball_loss(input_data, target_data) and returns: loss_data, loss_data