class_docstr: see https://arxiv.org/pdf/2205.12740.pdf 
  Args:
      loss_weight (float): siou loss weight, default as 1
      eps (float): epsilon to avoid divide by zero, default as 1e-10
      theta (float): default as 4
      reduction (str): Options are "none", "mean" and "sum". default as none
code: def __init__(
      self, loss_weight=1.0, eps=1e-10, theta=4.0, reduction="none"
  ):
      super(SIoULoss, self).__init__(loss_weight=loss_weight, eps=eps)
      self.loss_weight = loss_weight
      self.eps = eps
      self.theta = theta
      self.reduction = reduction
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numpy
  import math
  import paddle
  from ppdet.core.workspace import register, serializable
  from ..bbox_utils import bbox_iou
label_desc: Use image node_id 1 to create a new SIoULoss object from inherited base classes: GIoULoss with example: obj = SIoULoss(loss_weight, eps, theta, reduction)