class_docstr: Args:
      in_channels (int): the channel number of input to CenterNetHead.
      num_classes (int): the number of classes, 80 (COCO dataset) by default.
      head_planes (int): the channel number in all head, 256 by default.
      prior_bias (float): prior bias in heatmap head, -2.19 by default, -4.6 in CenterTrack
      regress_ltrb (bool): whether to regress left/top/right/bottom or
          width/height for a box, True by default.
      size_loss (str): the type of size regression loss, 'L1' by default, can be 'giou'.
      loss_weight (dict): the weight of each loss.
      add_iou (bool): whether to add iou branch, False by default.
class_docstr_tok: ["Args",":","in_channels","(","int",")",":","the","channel","number","of","input","to","CenterNetHead",".","num_classes","(","int",")",":","the","number","of","classes",",","80","(","COCO","dataset",")","by","default",".","head_planes","(","int",")",":","the","channel","number","in","all","head",",","256","by","default",".","prior_bias","(","float",")",":","prior","bias","in","heatmap","head",",","-2.19","by","default",",","-4.6","in","CenterTrack","regress_ltrb","(","bool",")",":","whether","to","regress","left\/top\/right\/bottom","or","width\/height","for","a","box",",","True","by","default",".","size_loss","(","str",")",":","the","type","of","size","regression","loss",",","'L1","'","by","default",",","can","be","'giou","'",".","loss_weight","(","dict",")",":","the","weight","of","each","loss",".","add_iou","(","bool",")",":","whether","to","add","iou","branch",",","False","by","default","."]
code: def __init__(
      self,
      in_channels,
      num_classes=80,
      head_planes=256,
      prior_bias=-2.19,
      regress_ltrb=True,
      size_loss="L1",
      loss_weight={
          "heatmap": 1.0,
          "size": 0.1,
          "offset": 1.0,
          "iou": 0.0,
      },
      add_iou=False,
  ):
      super(CenterNetHead, self).__init__()
      self.regress_ltrb = regress_ltrb
      self.loss_weight = loss_weight
      self.add_iou = add_iou
  
      # heatmap head
      self.heatmap = nn.Sequential(
          ConvLayer(
              in_channels,
              head_planes,
              kernel_size=3,
              padding=1,
              bias=True,
          ),
          nn.ReLU(),
          ConvLayer(
              head_planes,
              num_classes,
              kernel_size=1,
              stride=1,
              padding=0,
              bias=True,
          ),
      )
      with paddle.no_grad():
          self.heatmap[2].conv.bias[:] = prior_bias
  
      # size(ltrb or wh) head
      self.size = nn.Sequential(
          ConvLayer(
              in_channels,
              head_planes,
              kernel_size=3,
              padding=1,
              bias=True,
          ),
          nn.ReLU(),
          ConvLayer(
              head_planes,
              4 if regress_ltrb else 2,
              kernel_size=1,
              stride=1,
              padding=0,
              bias=True,
          ),
      )
      self.size_loss = size_loss
  
      # offset head
      self.offset = nn.Sequential(
          ConvLayer(
              in_channels,
              head_planes,
              kernel_size=3,
              padding=1,
              bias=True,
          ),
          nn.ReLU(),
          ConvLayer(
              head_planes,
              2,
              kernel_size=1,
              stride=1,
              padding=0,
              bias=True,
          ),
      )
  
      # iou head (optinal)
      if self.add_iou and "iou" in self.loss_weight:
          self.iou = nn.Sequential(
              ConvLayer(
                  in_channels,
                  head_planes,
                  kernel_size=3,
                  padding=1,
                  bias=True,
              ),
              nn.ReLU(),
              ConvLayer(
                  head_planes,
                  4 if regress_ltrb else 2,
                  kernel_size=1,
                  stride=1,
                  padding=0,
                  bias=True,
              ),
          )
  
file_path: PaddleDetection/ppdet/modeling/heads/centernet_head.py
imports: import math
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle.nn.initializer import Constant, Uniform
  from ppdet.core.workspace import register
  from ppdet.modeling.losses import CTFocalLoss, GIoULoss
label_desc: Use image node_id 1 to create a new CenterNetHead object from inherited base classes: nn with example: obj = CenterNetHead(in_channels, num_classes, head_planes, prior_bias, regress_ltrb, size_loss, loss_weight, add_iou)