class_docstr: Joint Pyramid Upsampling of FCN.
  The original paper refers to
      Wu, Huikai, et al. "Fastfcn: Rethinking dilated convolution in the backbone for semantic segmentation." arXiv preprint arXiv:1903.11816 (2019).
code: def forward(self, *inputs):
      feats = [
          self.conv5(inputs[-1]),
          self.conv4(inputs[-2]),
          self.conv3(inputs[-3]),
      ]
      size = paddle.shape(feats[-1])[2:]
      feats[-2] = F.interpolate(
          feats[-2], size, mode="bilinear", align_corners=True
      )
      feats[-3] = F.interpolate(
          feats[-3], size, mode="bilinear", align_corners=True
      )
  
      feat = paddle.concat(feats, axis=1)
      feat = paddle.concat(
          [
              self.dilation1(feat),
              self.dilation2(feat),
              self.dilation3(feat),
              self.dilation4(feat),
          ],
          axis=1,
      )
  
      return inputs[0], inputs[1], inputs[2], feat
  
imports: import os
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.models import layers
label_desc: Use image node_id 2 for calling the JPU obj's underlying member method code with example usage: obj.forward() and returns: inputs,  inputs,  inputs,  feat