class_docstr: Pyramid pooling module originally in PSPNet.
  
  Args:
      in_channels (int): The number of intput channels to pyramid pooling module.
      out_channels (int): The number of output channels after pyramid pooling module.
      bin_sizes (tuple, optional): The out size of pooled feature maps. Default: (1, 2, 3, 6).
      dim_reduction (bool, optional): A bool value represents if reducing dimension after pooling. Default: True.
      align_corners (bool): An argument of F.interpolate. It should be set to False when the output size of feature
          is even, e.g. 1024x512, otherwise it is True, e.g. 769x769.
code: def forward(self, input: paddle.Tensor) -> paddle.Tensor:
      cat_layers = []
      for stage in self.stages:
          x = stage(input)
          x = F.interpolate(
              x,
              paddle.shape(input)[2:],
              mode="bilinear",
              align_corners=self.align_corners,
          )
          cat_layers.append(x)
      cat_layers = [input] + cat_layers[::-1]
      cat = paddle.concat(cat_layers, axis=1)
      out = self.conv_bn_relu2(cat)
  
      return out
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle.nn.layer import activation
  from paddle.nn import Conv2D, AvgPool2D
label_desc: Use image node_id 3 for calling the PPModule obj's underlying member method code with example usage: obj.forward(input) and returns: out