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 _preprocess(self):
      # YOLOX multi-scale training, interpolate resize before inputs of the network.
      self._get_size()
      scale_y = self._input_size[0] / self.input_size[0]
      scale_x = self._input_size[1] / self.input_size[1]
      if scale_x != 1 or scale_y != 1:
          self.inputs["image"] = F.interpolate(
              self.inputs["image"],
              size=self._input_size,
              mode="bilinear",
              align_corners=False,
          )
          gt_bboxes = self.inputs["gt_bbox"]
          for i in range(len(gt_bboxes)):
              if len(gt_bboxes[i]) > 0:
                  gt_bboxes[i][:, 0::2] = (
                      gt_bboxes[i][:, 0::2] * scale_x
                  )
                  gt_bboxes[i][:, 1::2] = (
                      gt_bboxes[i][:, 1::2] * scale_y
                  )
          self.inputs["gt_bbox"] = gt_bboxes
  
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 6 for calling the YOLOX obj's underlying member method code with example usage: obj._preprocess() without return types