class_docstr: FreeAnchor RetinaHead used in https://arxiv.org/abs/1909.02466.
  
  Args:
      num_classes (int): Number of categories excluding the background
          category.
      in_channels (int): Number of channels in the input feature map.
      stacked_convs (int): Number of conv layers in cls and reg tower.
          Default: 4.
      conv_cfg (dict): dictionary to construct and config conv layer.
          Default: None.
      norm_cfg (dict): dictionary to construct and config norm layer.
          Default: norm_cfg=dict(type='GN', num_groups=32,
          requires_grad=True).
      pre_anchor_topk (int): Number of boxes that be token in each bag.
      bbox_thr (float): The threshold of the saturated linear function. It is
          usually the same with the IoU threshold used in NMS.
      gamma (float): Gamma parameter in focal loss.
      alpha (float): Alpha parameter in focal loss.
code: def __init__(
      self,
      num_classes,
      in_channels,
      stacked_convs=4,
      conv_cfg=None,
      norm_cfg=None,
      pre_anchor_topk=50,
      bbox_thr=0.6,
      gamma=2.0,
      alpha=0.5,
      **kwargs,
  ):
      super(FreeAnchorRetinaHead, self).__init__(
          num_classes,
          in_channels,
          stacked_convs,
          conv_cfg,
          norm_cfg,
          **kwargs,
      )
  
      self.pre_anchor_topk = pre_anchor_topk
      self.bbox_thr = bbox_thr
      self.gamma = gamma
      self.alpha = alpha
  
file_path: insightface/detection/scrfd/mmdet/models/dense_heads/free_anchor_retina_head.py
imports: import torch
  import torch.nn.functional
  from mmdet.core import bbox_overlaps
  from ..builder import HEADS
  from .retina_head import RetinaHead
label_desc: Use image node_id 1 to create a new FreeAnchorRetinaHead object from inherited base classes: RetinaHead with example: obj = FreeAnchorRetinaHead(num_classes, in_channels, stacked_convs, conv_cfg, norm_cfg, pre_anchor_topk, bbox_thr, gamma, alpha)