class_docstr: The UPerNetHead implementation.
  
  Args:
      inplane (int): Input channels of PPM module.
      num_class (int): The unique number of target classes.
      channels_fpn (list): The feature channels from backbone.
      fpn_channels (int, optional): The input channels of FPN module. Default: 512.
      enable_auxiliary_loss (bool, optional): A bool value indicates whether adding auxiliary loss. Default: False.
code: def forward(self, conv_out):
      psp_out = self.psp_modules(conv_out[-1])
      f = psp_out
      fpn_feature_list = [psp_out]
      out = []
  
      for i in reversed(range(len(conv_out) - 1)):
          conv_x = conv_out[i]
          conv_x = self.lateral_convs[i](conv_x)
          prev_shape = paddle.shape(conv_x)[2:]
          f = conv_x + F.interpolate(
              f, prev_shape, mode="bilinear", align_corners=False
          )
          fpn_feature_list.append(self.fpn_convs[i](f))
  
      fpn_feature_list.reverse()
      output_size = fpn_feature_list[0].shape[2:]
      # resize multi-scales feature
      for index in range(len(conv_out) - 1, 0, -1):
          fpn_feature_list[index] = F.interpolate(
              fpn_feature_list[index],
              size=output_size,
              mode="bilinear",
              align_corners=False,
          )
      fusion_out = paddle.concat(fpn_feature_list, 1)
      x = self.fpn_bottleneck(fusion_out)
      x = self.cls_seg(x)
  
      if self.enable_auxiliary_loss:
          dsn = self.dsn(conv_out[2])
          out.append(x)
          out.append(dsn)
          return out
      else:
          return [x]
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.utils import utils
  from paddleseg.cvlibs import manager
  from paddleseg.models import layers
  from paddleseg.models.backbones.transformer_utils import Identity
label_desc: Use image node_id 3 for calling the UPerNetHead obj's underlying member method code with example usage: obj.forward(conv_out) and returns: out, list