class_docstr: FCOS ARSL network, see https://arxiv.org/abs/
  
  Args:
      backbone (object): backbone instance
      neck (object): 'FPN' instance
      fcos_head (object): 'FCOSHead_ARSL' instance
      fcos_cr_loss (object): 'FCOSLossCR' instance, only used for semi-det(ssod) by ARSL
code: def forward(
      self, inputs, branch="supervised", teacher_prediction=None
  ):
      assert branch in ["supervised", "semi_supervised"], print(
          "In ARSL, type must be supervised or semi_supervised."
      )
  
      if self.data_format == "NHWC":
          image = inputs["image"]
          inputs["image"] = paddle.transpose(image, [0, 2, 3, 1])
      self.inputs = inputs
  
      if self.training:
          if branch == "supervised":
              out = self.get_loss()
          else:
              out = self.get_pseudo_loss(teacher_prediction)
      else:
          # norm test
          if branch == "supervised":
              out = self.get_pred()
              # predict pseudo labels
          else:
              out = self.get_pseudo_pred()
      return out
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  from ppdet.core.workspace import register, create
  from .meta_arch import BaseArch
label_desc: Use image node_id 3 for calling the ARSL_FCOS obj's underlying member method code with example usage: obj.forward(inputs, branch, teacher_prediction) and returns: out