class_docstr: The SETR Progressive UPsampling Head implementation.
  
  Args:
      num_classes (int): The unique number of target classes.
      backbone_indices (tuple): A tuple indicates the indices of output of backbone.
          It can be either one or two values, if two values, the first index will be taken as
          a deep-supervision feature in auxiliary layer; the second one will be taken as
          input of pixel representation. If one value, it is taken by both above.
      in_channels (int): The number of input channels. Default: 10.
      align_corners (bool): An argument of F.interpolate. It should be set to False when the output size of feature
          is even, e.g. 1024x512, otherwise it is True, e.g. 769x769.  Default: False.
      lr_multiple (int, optional): The leanring rate multiple of head parameters. Default: 10.
class_docstr_tok: ["The","SETR","Progressive","UPsampling","Head","implementation",".","Args",":","num_classes","(","int",")",":","The","unique","number","of","target","classes",".","backbone_indices","(","tuple",")",":","A","tuple","indicates","the","indices","of","output","of","backbone",".","It","can","be","either","one","or","two","values",",","if","two","values",",","the","first","index","will","be","taken","as","a","deep-supervision","feature","in","auxiliary","layer",";","the","second","one","will","be","taken","as","input","of","pixel","representation",".","If","one","value",",","it","is","taken","by","both","above",".","in_channels","(","int",")",":","The","number","of","input","channels",".","Default",":","10.","align_corners","(","bool",")",":","An","argument","of","F.interpolate",".","It","should","be","set","to","False","when","the","output","size","of","feature","is","even",",","e.g",".","1024x512",",","otherwise","it","is","True",",","e.g",".","769x769",".","Default",":","False",".","lr_multiple","(","int",",","optional",")",":","The","leanring","rate","multiple","of","head","parameters",".","Default",":","10","."]
code: def forward(self, x, _shape):
      logits = []
      feat = x[self.backbone_indices[-1]]
      feat = (
          self.cls_head_norm(feat)
          .transpose([0, 2, 1])
          .reshape([0, self.in_channels, _shape[2], _shape[3]])
      )
  
      logits.append(self.cls_head(feat))
  
      if self.training:
          for idx, _head in enumerate(self.aux_heads):
              feat = x[self.backbone_indices[idx]]
              feat = (
                  self.aux_head_norms[idx](feat)
                  .transpose([0, 2, 1])
                  .reshape([0, self.in_channels, _shape[2], _shape[3]])
              )
              logits.append(_head(feat))
  
      return logits
  
imports: import paddle.nn
  import paddle.nn.functional
  import paddle
  from paddleseg.cvlibs import manager, param_init
  from paddleseg.models import layers
  from paddleseg.utils import utils
label_desc: Use image node_id 3 for calling the PUPHead obj's underlying member method code with example usage: obj.forward(x, _shape) and returns: logits