class_docstr: OTAHead
  Args:
      conv_feat (object): Instance of 'FCOSFeat'
      num_classes (int): Number of classes
      fpn_stride (list): The stride of each FPN Layer
      prior_prob (float): Used to set the bias init for the class prediction layer
      loss_qfl (object): Instance of QualityFocalLoss.
      loss_dfl (object): Instance of DistributionFocalLoss.
      loss_bbox (object): Instance of bbox loss.
      assigner (object): Instance of label assigner.
      reg_max: Max value of integral set :math: `{0, ..., reg_max}`
              n QFL setting. Default: 16.
class_docstr_tok: ["OTAHead","Args",":","conv_feat","(","object",")",":","Instance","of","'FCOSFeat'","num_classes","(","int",")",":","Number","of","classes","fpn_stride","(","list",")",":","The","stride","of","each","FPN","Layer","prior_prob","(","float",")",":","Used","to","set","the","bias","init","for","the","class","prediction","layer","loss_qfl","(","object",")",":","Instance","of","QualityFocalLoss",".","loss_dfl","(","object",")",":","Instance","of","DistributionFocalLoss",".","loss_bbox","(","object",")",":","Instance","of","bbox","loss",".","assigner","(","object",")",":","Instance","of","label","assigner",".","reg_max",":","Max","value","of","integral","set",":","math",":","`","{","0",",","...",",","reg_max","}","`","n","QFL","setting",".","Default",":","16","."]
code: def __init__(
      self,
      conv_feat="FCOSFeat",
      dgqp_module=None,
      num_classes=80,
      fpn_stride=[8, 16, 32, 64, 128],
      prior_prob=0.01,
      loss_class="QualityFocalLoss",
      loss_dfl="DistributionFocalLoss",
      loss_bbox="GIoULoss",
      assigner="SimOTAAssigner",
      reg_max=16,
      feat_in_chan=256,
      nms=None,
      nms_pre=1000,
      cell_offset=0,
  ):
      super(OTAHead, self).__init__(
          conv_feat=conv_feat,
          dgqp_module=dgqp_module,
          num_classes=num_classes,
          fpn_stride=fpn_stride,
          prior_prob=prior_prob,
          loss_class=loss_class,
          loss_dfl=loss_dfl,
          loss_bbox=loss_bbox,
          reg_max=reg_max,
          feat_in_chan=feat_in_chan,
          nms=nms,
          nms_pre=nms_pre,
          cell_offset=cell_offset,
      )
      self.conv_feat = conv_feat
      self.dgqp_module = dgqp_module
      self.num_classes = num_classes
      self.fpn_stride = fpn_stride
      self.prior_prob = prior_prob
      self.loss_qfl = loss_class
      self.loss_dfl = loss_dfl
      self.loss_bbox = loss_bbox
      self.reg_max = reg_max
      self.feat_in_chan = feat_in_chan
      self.nms = nms
      self.nms_pre = nms_pre
      self.cell_offset = cell_offset
      self.use_sigmoid = self.loss_qfl.use_sigmoid
  
      self.assigner = assigner
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  from functools import partial
  import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle import ParamAttr
  from paddle.nn.initializer import Normal, Constant
  from ppdet.core.workspace import register
  from ppdet.modeling.bbox_utils import distance2bbox, bbox2distance
  from ppdet.data.transform.atss_assigner import bbox_overlaps
  from .gfl_head import GFLHead
label_desc: Use image node_id 1 to create a new OTAHead object from inherited base classes: GFLHead with example: obj = OTAHead(conv_feat, dgqp_module, num_classes, fpn_stride, prior_prob, loss_class, loss_dfl, loss_bbox, assigner, reg_max, feat_in_chan, nms, nms_pre, cell_offset)