code: def __init__(
      self,
      in_channels,
      out_channels,
      fc_decay=0.0004,
      mid_channels=None,
      return_feats=False,
      **kwargs,
  ):
      super(CTCHead, self).__init__()
      if mid_channels is None:
          weight_attr, bias_attr = get_para_bias_attr(
              l2_decay=fc_decay, k=in_channels
          )
          self.fc = nn.Linear(
              in_channels,
              out_channels,
              weight_attr=weight_attr,
              bias_attr=bias_attr,
          )
      else:
          weight_attr1, bias_attr1 = get_para_bias_attr(
              l2_decay=fc_decay, k=in_channels
          )
          self.fc1 = nn.Linear(
              in_channels,
              mid_channels,
              weight_attr=weight_attr1,
              bias_attr=bias_attr1,
          )
  
          weight_attr2, bias_attr2 = get_para_bias_attr(
              l2_decay=fc_decay, k=mid_channels
          )
          self.fc2 = nn.Linear(
              mid_channels,
              out_channels,
              weight_attr=weight_attr2,
              bias_attr=bias_attr2,
          )
      self.out_channels = out_channels
      self.mid_channels = mid_channels
      self.return_feats = return_feats
  
file_path: PaddleOCR/ppocr/modeling/heads/rec_ctc_head.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import paddle
  from paddle import ParamAttr, nn
  from paddle.nn import functional
label_desc: Use image node_id 1 to create a new CTCHead object from inherited base classes: nn with example: obj = CTCHead(in_channels, out_channels, fc_decay, mid_channels, return_feats)