code: def _forward(self):
      body_feats = self.backbone(self.inputs)
      neck_feats = self.neck(body_feats, self.for_mot)
  
      if self.training:
          if self.inputs["epoch_id"] >= self.detach_epoch:
              aux_neck_feats = self.aux_neck(
                  [f.detach() for f in body_feats]
              )
              dual_neck_feats = (
                  paddle.concat([f.detach(), aux_f], axis=1)
                  for f, aux_f in zip(neck_feats, aux_neck_feats)
              )
          else:
              aux_neck_feats = self.aux_neck(body_feats)
              dual_neck_feats = (
                  paddle.concat([f, aux_f], axis=1)
                  for f, aux_f in zip(neck_feats, aux_neck_feats)
              )
          aux_cls_scores, aux_bbox_preds = self.aux_head(
              dual_neck_feats
          )
          loss = self.yolo_head(
              neck_feats,
              self.inputs,
              aux_pred=[aux_cls_scores, aux_bbox_preds],
          )
          return loss
      else:
          yolo_head_outs = self.yolo_head(neck_feats)
  
          if self.post_process is not None:
              bbox, bbox_num, nms_keep_idx = self.post_process(
                  yolo_head_outs,
                  self.yolo_head.mask_anchors,
                  self.inputs["im_shape"],
                  self.inputs["scale_factor"],
              )
          else:
              (
                  bbox,
                  bbox_num,
                  nms_keep_idx,
              ) = self.yolo_head.post_process(
                  yolo_head_outs, self.inputs["scale_factor"]
              )
  
          if self.use_extra_data:
              extra_data = (
                  {}
              )  # record the bbox output before nms, such like scores and nms_keep_idx
              """extra_data:{
                              'scores': predict scores,
                              'nms_keep_idx': bbox index before nms,
                             }
                             """
              extra_data["scores"] = yolo_head_outs[
                  0
              ]  # predict scores (probability)
              # Todo: get logits output
              extra_data["nms_keep_idx"] = nms_keep_idx
              output = {
                  "bbox": bbox,
                  "bbox_num": bbox_num,
                  "extra_data": extra_data,
              }
          else:
              output = {"bbox": bbox, "bbox_num": bbox_num}
  
          return output
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  import paddle
  from ppdet.core.workspace import register, create
  from .meta_arch import BaseArch
label_desc: Use image node_id 3 for calling the PPYOLOEWithAuxHead obj's underlying member method code with example usage: obj._forward() and returns: loss, output