code: def cross_entropy(
      pred,
      label,
      weight=None,
      reduction="mean",
      avg_factor=None,
      class_weight=None,
      ignore_index=-100,
      avg_non_ignore=False,
  ):
      """Calculate the CrossEntropy loss.
  
      Args:
          pred (torch.Tensor): The prediction with shape (N, C), C is the number
              of classes.
          label (torch.Tensor): The learning label of the prediction.
          weight (torch.Tensor, optional): Sample-wise loss weight.
          reduction (str, optional): The method used to reduce the loss.
          avg_factor (int, optional): Average factor that is used to average
              the loss. Defaults to None.
          class_weight (list[float], optional): The weight for each class.
          ignore_index (int | None): The label index to be ignored.
              If None, it will be set to default value. Default: -100.
          avg_non_ignore (bool): The flag decides to whether the loss is
              only averaged over non-ignored targets. Default: False.
  
      Returns:
          torch.Tensor: The calculated loss
      """
      # The default value of ignore_index is the same as F.cross_entropy
      ignore_index = -100 if ignore_index is None else ignore_index
      # element-wise losses
      loss = F.cross_entropy(
          pred,
          label,
          weight=class_weight,
          reduction="none",
          ignore_index=ignore_index,
      )
  
      # average loss over non-ignored elements
      # pytorch's official cross_entropy average loss over non-ignored elements
      # refer to https://github.com/pytorch/pytorch/blob/56b43f4fec1f76953f15a627694d4bba34588969/torch/nn/functional.py#L2660  # noqa
      if (
          (avg_factor is None)
          and avg_non_ignore
          and reduction == "mean"
      ):
          avg_factor = (
              label.numel() - (label == ignore_index).sum().item()
          )
  
      # apply weights and do the reduction
      if weight is not None:
          weight = weight.float()
      loss = weight_reduce_loss(
          loss,
          weight=weight,
          reduction=reduction,
          avg_factor=avg_factor,
      )
  
      return loss
  
imports: import warnings
  import torch
  import torch.nn
  import torch.nn.functional
  from mmdet.registry import MODELS
  from .accuracy import accuracy
  from .utils import weight_reduce_loss
label_desc: Use image node_id 1 for calling a global function with example usage: cross_entropy(pred, label, weight, reduction, avg_factor, class_weight, ignore_index, avg_non_ignore) and returns: loss