docstr: Args:
      boxes (Tensor): [l, b, query, 4]
      logits (Tensor): [l, b, query, num_classes]
      gt_bbox (List(Tensor)): list[[n, 4]]
      gt_class (List(Tensor)): list[[n, 1]]
      masks (Tensor, optional): [l, b, query, h, w]
      gt_mask (List(Tensor), optional): list[[n, H, W]]
      postfix (str): postfix of loss name
docstr_tok: ["Args",":","boxes","(","Tensor",")",":","[","l",",","b",",","query",",","4","]","logits","(","Tensor",")",":","[","l",",","b",",","query",",","num_classes","]","gt_bbox","(","List","(","Tensor",")",")",":","list","[","[","n",",","4","]","]","gt_class","(","List","(","Tensor",")",")",":","list","[","[","n",",","1","]","]","masks","(","Tensor",",","optional",")",":","[","l",",","b",",","query",",","h",",","w","]","gt_mask","(","List","(","Tensor",")",",","optional",")",":","list","[","[","n",",","H",",","W","]","]","postfix","(","str",")",":","postfix","of","loss","name"]
code: def forward(
      self,
      boxes,
      logits,
      gt_bbox,
      gt_class,
      masks=None,
      gt_mask=None,
      postfix="",
      gt_score=None,
      **kwargs,
  ):
      r"""
      Args:
          boxes (Tensor): [l, b, query, 4]
          logits (Tensor): [l, b, query, num_classes]
          gt_bbox (List(Tensor)): list[[n, 4]]
          gt_class (List(Tensor)): list[[n, 1]]
          masks (Tensor, optional): [l, b, query, h, w]
          gt_mask (List(Tensor), optional): list[[n, H, W]]
          postfix (str): postfix of loss name
      """
  
      dn_match_indices = kwargs.get("dn_match_indices", None)
      num_gts = kwargs.get("num_gts", None)
      if num_gts is None:
          num_gts = self._get_num_gts(gt_class)
  
      total_loss = self._get_prediction_loss(
          boxes[-1],
          logits[-1],
          gt_bbox,
          gt_class,
          masks=masks[-1] if masks is not None else None,
          gt_mask=gt_mask,
          postfix=postfix,
          dn_match_indices=dn_match_indices,
          num_gts=num_gts,
          gt_score=gt_score if gt_score is not None else None,
      )
  
      if self.aux_loss:
          total_loss.update(
              self._get_loss_aux(
                  boxes[:-1],
                  logits[:-1],
                  gt_bbox,
                  gt_class,
                  self.num_classes,
                  num_gts,
                  dn_match_indices,
                  postfix,
                  masks=masks[:-1] if masks is not None else None,
                  gt_mask=gt_mask,
                  gt_score=gt_score if gt_score is not None else None,
              )
          )
  
      return total_loss
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from ppdet.core.workspace import register
  from .iou_loss import GIoULoss
  from ..transformers import bbox_cxcywh_to_xyxy, sigmoid_focal_loss, varifocal_loss_with_logits
  from ..bbox_utils import bbox_iou
label_desc: Use image node_id 11 for calling the DETRLoss obj's underlying member method code with example usage: obj.forward(boxes, logits, gt_bbox, gt_class, masks, gt_mask, postfix, gt_score) and returns: total_loss