code: def _forward(self):
      det_outs = self.detector(self.inputs)
  
      if self.training:
          emb_feats = det_outs["emb_feats"]
          loss_confs = det_outs["det_losses"]["loss_confs"]
          loss_boxes = det_outs["det_losses"]["loss_boxes"]
          jde_losses = self.reid(
              emb_feats,
              self.inputs,
              loss_confs=loss_confs,
              loss_boxes=loss_boxes,
          )
          return jde_losses
      else:
          if self.metric == "MOTDet":
              det_results = {
                  "bbox": det_outs["bbox"],
                  "bbox_num": det_outs["bbox_num"],
              }
              return det_results
  
          elif self.metric == "MOT":
              emb_feats = det_outs["emb_feats"]
              bboxes = det_outs["bbox"]
              boxes_idx = det_outs["boxes_idx"]
              nms_keep_idx = det_outs["nms_keep_idx"]
  
              pred_dets, pred_embs = self.reid(
                  emb_feats,
                  self.inputs,
                  bboxes=bboxes,
                  boxes_idx=boxes_idx,
                  nms_keep_idx=nms_keep_idx,
              )
              return pred_dets, pred_embs
  
          else:
              raise ValueError(
                  "Unknown metric {} for multi object tracking.".format(
                      self.metric
                  )
              )
  
file_path: PaddleDetection/ppdet/modeling/architectures/jde.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from ppdet.core.workspace import register, create
  from .meta_arch import BaseArch
label_desc: Use image node_id 3 for calling the JDE obj's underlying member method code with example usage: obj._forward() and returns: jde_losses, det_results, pred_dets,  pred_embs