class_docstr: Decoder module of DeepLabV3P model
  
  Args:
      num_classes (int): The number of classes.
      in_channels (int): The number of input channels in decoder module.
class_docstr_tok: ["Decoder","module","of","DeepLabV3P","model","Args",":","num_classes","(","int",")",":","The","number","of","classes",".","in_channels","(","int",")",":","The","number","of","input","channels","in","decoder","module","."]
code: def forward(self, x, low_level_feat):
      low_level_feat = self.conv_bn_relu1(low_level_feat)
      if self.data_format == "NCHW":
          low_level_shape = paddle.shape(low_level_feat)[-2:]
          axis = 1
      else:
          low_level_shape = paddle.shape(low_level_feat)[1:3]
          axis = -1
      x = F.interpolate(
          x,
          low_level_shape,
          mode="bilinear",
          align_corners=self.align_corners,
          data_format=self.data_format,
      )
      x = paddle.concat([x, low_level_feat], axis=axis)
      x = self.conv_bn_relu2(x)
      x = self.conv_bn_relu3(x)
      x = self.conv(x)
      return x
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.cvlibs import manager
  from paddleseg.models import layers
  from paddleseg.utils import utils
label_desc: Use image node_id 2 for calling the Decoder obj's underlying member method code with example usage: obj.forward(x, low_level_feat) and returns: x