code: def balanced_l1_loss(
      pred, target, beta=1.0, alpha=0.5, gamma=1.5, reduction="mean"
  ):
      """Calculate balanced L1 loss.
  
      Please see the `Libra R-CNN <https://arxiv.org/pdf/1904.02701.pdf>`_
  
      Args:
          pred (torch.Tensor): The prediction with shape (N, 4).
          target (torch.Tensor): The learning target of the prediction with
              shape (N, 4).
          beta (float): The loss is a piecewise function of prediction and target
              and ``beta`` serves as a threshold for the difference between the
              prediction and target. Defaults to 1.0.
          alpha (float): The denominator ``alpha`` in the balanced L1 loss.
              Defaults to 0.5.
          gamma (float): The ``gamma`` in the balanced L1 loss.
              Defaults to 1.5.
          reduction (str, optional): The method that reduces the loss to a
              scalar. Options are "none", "mean" and "sum".
  
      Returns:
          torch.Tensor: The calculated loss
      """
      assert beta > 0
      assert pred.size() == target.size() and target.numel() > 0
  
      diff = torch.abs(pred - target)
      b = np.e ** (gamma / alpha) - 1
      loss = torch.where(
          diff < beta,
          alpha / b * (b * diff + 1) * torch.log(b * diff / beta + 1)
          - alpha * diff,
          gamma * diff + gamma / b - alpha * beta,
      )
  
      return loss
  
file_path: insightface/detection/scrfd/mmdet/models/losses/balanced_l1_loss.py
imports: import numpy
  import torch
  import torch.nn
  from ..builder import LOSSES
  from .utils import weighted_loss
label_desc: Use image node_id 1 for calling a global function with example usage: balanced_l1_loss(pred, target, beta, alpha, gamma, reduction) and returns: loss