code: def __init__(self, in_channels, **kwargs):
      super(PGFPN, self).__init__()
      num_inputs = [2048, 2048, 1024, 512, 256]
      num_outputs = [256, 256, 192, 192, 128]
      self.out_channels = 128
      self.conv_bn_layer_1 = ConvBNLayer(
          in_channels=3,
          out_channels=32,
          kernel_size=3,
          stride=1,
          act=None,
          name="FPN_d1",
      )
      self.conv_bn_layer_2 = ConvBNLayer(
          in_channels=64,
          out_channels=64,
          kernel_size=3,
          stride=1,
          act=None,
          name="FPN_d2",
      )
      self.conv_bn_layer_3 = ConvBNLayer(
          in_channels=256,
          out_channels=128,
          kernel_size=3,
          stride=1,
          act=None,
          name="FPN_d3",
      )
      self.conv_bn_layer_4 = ConvBNLayer(
          in_channels=32,
          out_channels=64,
          kernel_size=3,
          stride=2,
          act=None,
          name="FPN_d4",
      )
      self.conv_bn_layer_5 = ConvBNLayer(
          in_channels=64,
          out_channels=64,
          kernel_size=3,
          stride=1,
          act="relu",
          name="FPN_d5",
      )
      self.conv_bn_layer_6 = ConvBNLayer(
          in_channels=64,
          out_channels=128,
          kernel_size=3,
          stride=2,
          act=None,
          name="FPN_d6",
      )
      self.conv_bn_layer_7 = ConvBNLayer(
          in_channels=128,
          out_channels=128,
          kernel_size=3,
          stride=1,
          act="relu",
          name="FPN_d7",
      )
      self.conv_bn_layer_8 = ConvBNLayer(
          in_channels=128,
          out_channels=128,
          kernel_size=1,
          stride=1,
          act=None,
          name="FPN_d8",
      )
  
      self.conv_h0 = ConvBNLayer(
          in_channels=num_inputs[0],
          out_channels=num_outputs[0],
          kernel_size=1,
          stride=1,
          act=None,
          name="conv_h{}".format(0),
      )
      self.conv_h1 = ConvBNLayer(
          in_channels=num_inputs[1],
          out_channels=num_outputs[1],
          kernel_size=1,
          stride=1,
          act=None,
          name="conv_h{}".format(1),
      )
      self.conv_h2 = ConvBNLayer(
          in_channels=num_inputs[2],
          out_channels=num_outputs[2],
          kernel_size=1,
          stride=1,
          act=None,
          name="conv_h{}".format(2),
      )
      self.conv_h3 = ConvBNLayer(
          in_channels=num_inputs[3],
          out_channels=num_outputs[3],
          kernel_size=1,
          stride=1,
          act=None,
          name="conv_h{}".format(3),
      )
      self.conv_h4 = ConvBNLayer(
          in_channels=num_inputs[4],
          out_channels=num_outputs[4],
          kernel_size=1,
          stride=1,
          act=None,
          name="conv_h{}".format(4),
      )
  
      self.dconv0 = DeConvBNLayer(
          in_channels=num_outputs[0],
          out_channels=num_outputs[0 + 1],
          name="dconv_{}".format(0),
      )
      self.dconv1 = DeConvBNLayer(
          in_channels=num_outputs[1],
          out_channels=num_outputs[1 + 1],
          act=None,
          name="dconv_{}".format(1),
      )
      self.dconv2 = DeConvBNLayer(
          in_channels=num_outputs[2],
          out_channels=num_outputs[2 + 1],
          act=None,
          name="dconv_{}".format(2),
      )
      self.dconv3 = DeConvBNLayer(
          in_channels=num_outputs[3],
          out_channels=num_outputs[3 + 1],
          act=None,
          name="dconv_{}".format(3),
      )
      self.conv_g1 = ConvBNLayer(
          in_channels=num_outputs[1],
          out_channels=num_outputs[1],
          kernel_size=3,
          stride=1,
          act="relu",
          name="conv_g{}".format(1),
      )
      self.conv_g2 = ConvBNLayer(
          in_channels=num_outputs[2],
          out_channels=num_outputs[2],
          kernel_size=3,
          stride=1,
          act="relu",
          name="conv_g{}".format(2),
      )
      self.conv_g3 = ConvBNLayer(
          in_channels=num_outputs[3],
          out_channels=num_outputs[3],
          kernel_size=3,
          stride=1,
          act="relu",
          name="conv_g{}".format(3),
      )
      self.conv_g4 = ConvBNLayer(
          in_channels=num_outputs[4],
          out_channels=num_outputs[4],
          kernel_size=3,
          stride=1,
          act="relu",
          name="conv_g{}".format(4),
      )
      self.convf = ConvBNLayer(
          in_channels=num_outputs[4],
          out_channels=num_outputs[4],
          kernel_size=1,
          stride=1,
          act=None,
          name="conv_f{}".format(4),
      )
  
file_path: PaddleOCR/ppocr/modeling/necks/pg_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 PGFPN object from inherited base classes: nn with example: obj = PGFPN(in_channels)