class_docstr: Decoder module of DeepLabV3P model
  
  Args:
      num_classes (int): The number of classes.
      decoder_channels (int): The channels of decoder.
      head_channels (int): The channels of head.
      class_key (list): The key name of output by classifier.
class_docstr_tok: ["Decoder","module","of","DeepLabV3P","model","Args",":","num_classes","(","int",")",":","The","number","of","classes",".","decoder_channels","(","int",")",":","The","channels","of","decoder",".","head_channels","(","int",")",":","The","channels","of","head",".","class_key","(","list",")",":","The","key","name","of","output","by","classifier","."]
code: def __init__(
      self, num_classes, decoder_channels, head_channels, class_key
  ):
      super(SinglePanopticDeepLabHead, self).__init__()
      self.num_head = len(num_classes)
      if self.num_head != len(class_key):
          raise ValueError(
              "len(num_classes) != len(class_key), they are {} and {}".format(
                  num_classes, class_key
              )
          )
  
      classifier = []
      for i in range(self.num_head):
          classifier.append(
              nn.Sequential(
                  SeparableConvBNReLU(
                      decoder_channels,
                      head_channels,
                      5,
                      padding=2,
                      bias_attr=False,
                  ),
                  nn.Conv2D(head_channels, num_classes[i], 1),
              )
          )
  
      self.classifier = nn.LayerList(classifier)
      self.class_key = class_key
  
imports: from collections import OrderedDict
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.models import layers
  from paddleseg.utils import utils
  from paddlepanseg.cvlibs import manager, build_info_dict
label_desc: Use image node_id 1 to create a new SinglePanopticDeepLabHead object from inherited base classes: nn with example: obj = SinglePanopticDeepLabHead(num_classes, decoder_channels, head_channels, class_key)