code: def __init__(
      self,
      num_classes,
      fpn_inplanes,
      channels,
      dropout_prob=0.1,
      enable_auxiliary_loss=False,
      align_corners=True,
  ):
      super(UPerNetHead, self).__init__()
      self.align_corners = align_corners
      self.ppm = layers.PPModule(
          in_channels=fpn_inplanes[-1],
          out_channels=channels,
          bin_sizes=(1, 2, 3, 6),
          dim_reduction=True,
          align_corners=True,
      )
      self.enable_auxiliary_loss = enable_auxiliary_loss
      self.lateral_convs = nn.LayerList()
      self.fpn_convs = nn.LayerList()
  
      for fpn_inplane in fpn_inplanes[:-1]:
          self.lateral_convs.append(
              layers.ConvBNReLU(fpn_inplane, channels, 1)
          )
          self.fpn_convs.append(
              layers.ConvBNReLU(channels, channels, 3, bias_attr=False)
          )
  
      if self.enable_auxiliary_loss:
          self.aux_head = layers.AuxLayer(
              fpn_inplanes[2],
              fpn_inplanes[2],
              num_classes,
              dropout_prob=dropout_prob,
          )
  
      self.fpn_bottleneck = layers.ConvBNReLU(
          len(fpn_inplanes) * channels, channels, 3, padding=1
      )
  
      self.conv_last = nn.Sequential(
          layers.ConvBNReLU(
              len(fpn_inplanes) * channels, channels, 3, bias_attr=False
          ),
          nn.Conv2D(channels, num_classes, kernel_size=1),
      )
      self.conv_seg = nn.Conv2D(channels, num_classes, kernel_size=1)
  
file_path: PaddleSeg/paddleseg/models/upernet.py
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg import utils
  from paddleseg.cvlibs import manager
  from paddleseg.models import layers
label_desc: Use image node_id 1 to create a new UPerNetHead object from inherited base classes: nn with example: obj = UPerNetHead(num_classes, fpn_inplanes, channels, dropout_prob, enable_auxiliary_loss, align_corners)