code: def __init__(self, in_channels, out_channels, name=None):
      super(FPN, self).__init__()
      self.conv1_fpn = ConvBNLayer(
          in_channels,
          out_channels // 2,
          kernel_size=1,
          padding=0,
          stride=1,
          act="leaky",
          name=name + "_output1",
      )
      self.conv2_fpn = ConvBNLayer(
          in_channels,
          out_channels // 2,
          kernel_size=1,
          padding=0,
          stride=1,
          act="leaky",
          name=name + "_output2",
      )
      self.conv3_fpn = ConvBNLayer(
          out_channels // 2,
          out_channels // 2,
          kernel_size=3,
          padding=1,
          stride=1,
          act="leaky",
          name=name + "_merge",
      )
  
imports: import paddle
  import paddle.nn.functional
  from paddle import ParamAttr
  import paddle.nn
  from paddle.nn.initializer import KaimingNormal
  from ppdet.core.workspace import register, serializable
  from ..shape_spec import ShapeSpec
label_desc: Use image node_id 1 to create a new FPN object from inherited base classes: nn with example: obj = FPN(in_channels, out_channels, name)