code: def __init__(self, in_channels, out_channels, **kwargs):
      super(TableFPN, self).__init__()
      self.out_channels = 512
      weight_attr = paddle.nn.initializer.KaimingUniform()
      self.in2_conv = nn.Conv2D(
          in_channels=in_channels[0],
          out_channels=self.out_channels,
          kernel_size=1,
          weight_attr=ParamAttr(initializer=weight_attr),
          bias_attr=False,
      )
      self.in3_conv = nn.Conv2D(
          in_channels=in_channels[1],
          out_channels=self.out_channels,
          kernel_size=1,
          stride=1,
          weight_attr=ParamAttr(initializer=weight_attr),
          bias_attr=False,
      )
      self.in4_conv = nn.Conv2D(
          in_channels=in_channels[2],
          out_channels=self.out_channels,
          kernel_size=1,
          weight_attr=ParamAttr(initializer=weight_attr),
          bias_attr=False,
      )
      self.in5_conv = nn.Conv2D(
          in_channels=in_channels[3],
          out_channels=self.out_channels,
          kernel_size=1,
          weight_attr=ParamAttr(initializer=weight_attr),
          bias_attr=False,
      )
      self.p5_conv = nn.Conv2D(
          in_channels=self.out_channels,
          out_channels=self.out_channels // 4,
          kernel_size=3,
          padding=1,
          weight_attr=ParamAttr(initializer=weight_attr),
          bias_attr=False,
      )
      self.p4_conv = nn.Conv2D(
          in_channels=self.out_channels,
          out_channels=self.out_channels // 4,
          kernel_size=3,
          padding=1,
          weight_attr=ParamAttr(initializer=weight_attr),
          bias_attr=False,
      )
      self.p3_conv = nn.Conv2D(
          in_channels=self.out_channels,
          out_channels=self.out_channels // 4,
          kernel_size=3,
          padding=1,
          weight_attr=ParamAttr(initializer=weight_attr),
          bias_attr=False,
      )
      self.p2_conv = nn.Conv2D(
          in_channels=self.out_channels,
          out_channels=self.out_channels // 4,
          kernel_size=3,
          padding=1,
          weight_attr=ParamAttr(initializer=weight_attr),
          bias_attr=False,
      )
      self.fuse_conv = nn.Conv2D(
          in_channels=self.out_channels * 4,
          out_channels=512,
          kernel_size=3,
          padding=1,
          weight_attr=ParamAttr(initializer=weight_attr),
          bias_attr=False,
      )
  
file_path: PaddleOCR/ppocr/modeling/necks/table_fpn.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  from paddle import nn
  import paddle.nn.functional
  from paddle import ParamAttr
label_desc: Use image node_id 1 to create a new TableFPN object from inherited base classes: nn with example: obj = TableFPN(in_channels, out_channels)