class_docstr: The original article refers to refer to https://arxiv.org/pdf/2107.00782
  
  Args:
      inplanes (int): Input channels of feature.
      planes (int): Output channels of feature.
      kernel_size (int, optional): The kernel size of Conv2D. Default: 1
      stride (int, optional): The stride length of Conv2D. Default: 1
code: def channel_pool(self, x):
      g_x = self.conv_q_left(x)
      batch, channel, height, width = paddle.shape(g_x)
      avg_x = self.avg_pool(g_x)
      batch, channel, avg_x_h, avg_x_w = paddle.shape(avg_x)
      avg_x = avg_x.reshape((batch, channel, avg_x_h * avg_x_w))
      avg_x = paddle.reshape(avg_x, [batch, avg_x_h * avg_x_w, channel])
      theta_x = self.conv_v_left(x).reshape(
          (batch, self.inter_planes, height * width)
      )
      context = paddle.matmul(avg_x, theta_x)
      context = self.softmax_left(context)
      context = context.reshape((batch, 1, height, width))
      mask_sp = self.sigmoid(context)
      out = x * mask_sp
      return out
  
file_path: PaddleSeg/paddleseg/models/layers/polaried_self_attention.py
imports: import paddle
  import paddle.nn
  from paddleseg.cvlibs import param_init
label_desc: Use image node_id 3 for calling the PolarizedSelfAttentionModule obj's underlying member method code with example usage: obj.channel_pool(x) and returns: out