class_docstr: YOLOX network, see https://arxiv.org/abs/2107.08430
  
  Args:
      backbone (nn.Layer): backbone instance
      neck (nn.Layer): neck instance
      head (nn.Layer): head instance
      for_mot (bool): whether used for MOT or not
      input_size (list[int]): initial scale, will be reset by self._preprocess()
      size_stride (int): stride of the size range
      size_range (list[int]): multi-scale range for training
      random_interval (int): interval of iter to change self._input_size
class_docstr_tok: ["YOLOX","network",",","see","https",":","\/\/arxiv.org\/abs\/2107.08430","Args",":","backbone","(","nn.Layer",")",":","backbone","instance","neck","(","nn.Layer",")",":","neck","instance","head","(","nn.Layer",")",":","head","instance","for_mot","(","bool",")",":","whether","used","for","MOT","or","not","input_size","(","list","[","int","]",")",":","initial","scale",",","will","be","reset","by","self._preprocess","(",")","size_stride","(","int",")",":","stride","of","the","size","range","size_range","(","list","[","int","]",")",":","multi-scale","range","for","training","random_interval","(","int",")",":","interval","of","iter","to","change","self._input_size"]
code: def _forward(self):
      if self.training:
          self._preprocess()
      body_feats = self.backbone(self.inputs)
      neck_feats = self.neck(body_feats, self.for_mot)
  
      if self.training:
          yolox_losses = self.head(neck_feats, self.inputs)
          yolox_losses.update({"size": self._input_size[0]})
          return yolox_losses
      else:
          head_outs = self.head(neck_feats)
          bbox, bbox_num = self.head.post_process(
              head_outs,
              self.inputs["im_shape"],
              self.inputs["scale_factor"],
          )
          return {"bbox": bbox, "bbox_num": bbox_num}
  
file_path: PaddleDetection/ppdet/modeling/architectures/yolox.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
  import random
  import paddle
  import paddle.nn.functional
  import paddle.distributed
label_desc: Use image node_id 3 for calling the YOLOX obj's underlying member method code with example usage: obj._forward() and returns: yolox_losses, dict