def METHOD_NAME(self,
            pred: Tensor,
            target: Tensor,
            weight: Optional[Tensor] = None,
            avg_factor: Optional[int] = None,
            reduction_override: Optional[str] = None) -> Tensor:
    """Forward function.
    Args:
        pred (Tensor): The prediction with shape (N, C), C is the
            number of classes.
        target (Tensor): The learning target of the iou-aware
            classification score with shape (N, C), C is
            the number of classes.
        weight (Tensor, optional): The weight of loss for each
            prediction. Defaults to None.
        avg_factor (int, optional): Average factor that is used to average
            the loss. Defaults to None.
        reduction_override (str, optional): The reduction method used to
            override the original reduction method of the loss.
            Options are "none", "mean" and "sum".
    Returns:
        Tensor: The calculated loss
    """
    assert reduction_override in (None, 'none', 'mean', 'sum')
    reduction = (
        reduction_override if reduction_override else self.reduction)
    if self.use_sigmoid:
        loss_cls = self.loss_weight * varifocal_loss(
            pred,
            target,
            weight,
            alpha=self.alpha,
            gamma=self.gamma,
            iou_weighted=self.iou_weighted,
            reduction=reduction,
            avg_factor=avg_factor)
    else:
        raise NotImplementedError
    return loss_cls