class_docstr: This head is the implementation of Semantic FPN in paddle.
  
  The original article refers to:
  Kirillov, A. , et al. "Panoptic Feature Pyramid Networks."
  (https://arxiv.org/abs/1901.02446)
  
  Args:
      num_classes(int): The unique number of target classes. Default: 19.
      feature_strides(list): The strides for input feature maps and all strides suppose to be power of 2. The first
          one is of largest resolution. Default: [4, 8, 16, 32].
      in_channels(list): The input feature's channels list. Default: [256, 256, 256, 256].
      channels(int, optional): The output channels of scale_head's Conv before Upsample block. Default: 128.
      in_index(list): The indexs of input features to use. it's shape should keep with in_channels. Default: [0, 1, 2, 3].
      dropout_ratio(float, optional): If the dropout_ratio >0, to use Dropout before output and the p of dropout is dropout_ratio. Default: 0.1.
      conv_cfg(str): The config of Conv. Default: 'Conv2D'.
      input_transform(str): The features transform method of inputs. it can be found in function '_transform_inputs'. Defalut: 'multiple_select'.
      align_corners (bool, optional): An argument of F.interpolate. It should be set to False when the feature size is even,
          e.g. 1024x512, otherwise it is True, e.g. 769x769. Default: False.
class_docstr_tok: ["This","head","is","the","implementation","of","Semantic","FPN","in","paddle",".","The","original","article","refers","to",":","Kirillov",",","A.",",","et","al",".","``","Panoptic","Feature","Pyramid","Networks",".","''","(","https",":","\/\/arxiv.org\/abs\/1901.02446",")","Args",":","num_classes","(","int",")",":","The","unique","number","of","target","classes",".","Default",":","19.","feature_strides","(","list",")",":","The","strides","for","input","feature","maps","and","all","strides","suppose","to","be","power","of","2",".","The","first","one","is","of","largest","resolution",".","Default",":","[","4",",","8",",","16",",","32","]",".","in_channels","(","list",")",":","The","input","feature","'s","channels","list",".","Default",":","[","256",",","256",",","256",",","256","]",".","channels","(","int",",","optional",")",":","The","output","channels","of","scale_head","'s","Conv","before","Upsample","block",".","Default",":","128.","in_index","(","list",")",":","The","indexs","of","input","features","to","use",".","it","'s","shape","should","keep","with","in_channels",".","Default",":","[","0",",","1",",","2",",","3","]",".","dropout_ratio","(","float",",","optional",")",":","If","the","dropout_ratio",">","0",",","to","use","Dropout","before","output","and","the","p","of","dropout","is","dropout_ratio",".","Default",":","0.1.","conv_cfg","(","str",")",":","The","config","of","Conv",".","Default",":","'Conv2D","'",".","input_transform","(","str",")",":","The","features","transform","method","of","inputs",".","it","can","be","found","in","function","'_transform_inputs","'",".","Defalut",":","'multiple_select","'",".","align_corners","(","bool",",","optional",")",":","An","argument","of","F.interpolate",".","It","should","be","set","to","False","when","the","feature","size","is","even",",","e.g",".","1024x512",",","otherwise","it","is","True",",","e.g",".","769x769",".","Default",":","False","."]
code: def forward(self, inputs):
      x = self._transform_inputs(inputs)
      output = self.scale_heads[0](x[0])
      for i in range(1, len(self.feature_strides)):
          output = output + F.interpolate(
              self.scale_heads[i](x[i]),
              size=paddle.shape(output)[2:],
              mode="bilinear",
              align_corners=self.align_corners,
          )
      output = self.cls_seg(output)
      return [output]
  
imports: import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.cvlibs import manager
  from paddleseg.models import layers
  from paddleseg.utils import utils
label_desc: Use image node_id 4 for calling the FPNHead obj's underlying member method code with example usage: obj.forward(inputs) and returns: list