code: def forward(self, x):
      c2, c3, c4, c5 = x
      # Top-down
      p5 = self.reduce_conv_c5(c5)
      p4 = self._upsample_add(p5, self.reduce_conv_c4(c4))
      p4 = self.smooth_p4(p4)
      p3 = self._upsample_add(p4, self.reduce_conv_c3(c3))
      p3 = self.smooth_p3(p3)
      p2 = self._upsample_add(p3, self.reduce_conv_c2(c2))
      p2 = self.smooth_p2(p2)
  
      x = self._upsample_cat(p2, p3, p4, p5)
      x = self.conv(x)
      return x
  
file_path: PaddleOCR/benchmark/PaddleOCR_DBNet/models/neck/FPN.py
imports: import paddle
  import paddle.nn.functional
  from paddle import nn
  from models.basic import ConvBnRelu
label_desc: Use image node_id 2 for calling the FPN obj's underlying member method code with example usage: obj.forward(x) and returns: x