class_docstr: `Implementation of paper `Enhancing Geometric Factors into
  Model Learning and Inference for Object Detection and Instance
  Segmentation <https://arxiv.org/abs/2005.03572>`_.
  
  Code is modified from https://github.com/Zzh-tju/CIoU.
  
  Args:
      eps (float): Epsilon to avoid log(0).
      reduction (str): Options are "none", "mean" and "sum".
      loss_weight (float): Weight of loss.
class_docstr_tok: ["`","Implementation","of","paper","`","Enhancing","Geometric","Factors","into","Model","Learning","and","Inference","for","Object","Detection","and","Instance","Segmentation","<","https",":","\/\/arxiv.org\/abs\/2005.03572",">","`","_",".","Code","is","modified","from","https",":","\/\/github.com\/Zzh-tju\/CIoU",".","Args",":","eps","(","float",")",":","Epsilon","to","avoid","log","(","0",")",".","reduction","(","str",")",":","Options","are","``","none","''",",","``","mean","''","and","``","sum","''",".","loss_weight","(","float",")",":","Weight","of","loss","."]
code: def __init__(
      self,
      eps: float = 1e-6,
      reduction: str = "mean",
      loss_weight: float = 1.0,
  ) -> None:
      super().__init__()
      self.eps = eps
      self.reduction = reduction
      self.loss_weight = loss_weight
  
imports: import math
  import warnings
  from typing import Optional
  import torch
  import torch.nn
  from torch import Tensor
  from mmdet.registry import MODELS
  from mmdet.structures.bbox import bbox_overlaps
  from .utils import weighted_loss
label_desc: Use image node_id 1 to create a new CIoULoss object from inherited base classes: nn with example: obj = CIoULoss(eps, reduction, loss_weight)