code: def __init__(
      self,
      in_channels,
      hidden_dim,
      num_classes,
      loss_kernel=None,
      loss_loc=None,
  ):
      super(CT_Head, self).__init__()
      self.conv1 = nn.Conv2D(
          in_channels, hidden_dim, kernel_size=3, stride=1, padding=1
      )
      self.bn1 = nn.BatchNorm2D(hidden_dim)
      self.relu1 = nn.ReLU()
  
      self.conv2 = nn.Conv2D(
          hidden_dim, num_classes, kernel_size=1, stride=1, padding=0
      )
  
      for m in self.sublayers():
          if isinstance(m, nn.Conv2D):
              n = (
                  m._kernel_size[0]
                  * m._kernel_size[1]
                  * m._out_channels
              )
              normal_ = Normal(mean=0.0, std=math.sqrt(2.0 / n))
              normal_(m.weight)
          elif isinstance(m, nn.BatchNorm2D):
              zeros_(m.bias)
              ones_(m.weight)
  
file_path: PaddleOCR/ppocr/modeling/heads/det_ct_head.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import paddle
  from paddle import nn
  import paddle.nn.functional
  from paddle import ParamAttr
  import math
  from paddle.nn.initializer import TruncatedNormal, Constant, Normal
label_desc: Use image node_id 1 to create a new CT_Head object from inherited base classes: nn with example: obj = CT_Head(in_channels, hidden_dim, num_classes, loss_kernel, loss_loc)