class_docstr: FCOSLossMILC for ARSL in semi-det(ssod)
  Args:
      loss_alpha (float): alpha in focal loss
      loss_gamma (float): gamma in focal loss
      iou_loss_type (str): location loss type, IoU/GIoU/LINEAR_IoU
      reg_weights (float): weight for location loss
code: def iou_based_soft_label_loss(
      self,
      pred,
      target,
      alpha=0.75,
      gamma=2.0,
      iou_weighted=False,
      implicit_iou=None,
      avg_factor=None,
  ):
      assert pred.shape == target.shape
      pred = F.sigmoid(pred)
      target = target.cast(pred.dtype)
  
      if implicit_iou is not None:
          pred = pred * implicit_iou
  
      if iou_weighted:
          focal_weight = (pred - target).abs().pow(gamma) * target * (
              target > 0.0
          ).cast("float32") + alpha * (pred - target).abs().pow(
              gamma
          ) * (
              target <= 0.0
          ).cast(
              "float32"
          )
      else:
          focal_weight = (pred - target).abs().pow(gamma) * (
              target > 0.0
          ).cast("float32") + alpha * (pred - target).abs().pow(
              gamma
          ) * (
              target <= 0.0
          ).cast(
              "float32"
          )
  
      # focal loss
      loss = (
          F.binary_cross_entropy(pred, target, reduction="none")
          * focal_weight
      )
      if avg_factor is not None:
          loss = loss / avg_factor
      return loss
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from ppdet.core.workspace import register
  from ppdet.modeling import ops
  from functools import partial
label_desc: Use image node_id 4 for calling the FCOSLossMILC obj's underlying member method code with example usage: obj.iou_based_soft_label_loss(pred, target, alpha, gamma, iou_weighted, implicit_iou, avg_factor) and returns: loss