class_docstr: The UNet++ implementation based on PaddlePaddle.
  
  The original article refers to
  Zongwei Zhou, et, al. "UNet++: A Nested U-Net Architecture for Medical Image Segmentation"
  (https://arxiv.org/abs/1807.10165).
  
  Args:
      num_classes (int): The unique number of target classes.
      in_channels (int, optional): The channel number of input image. Default: 3.
      use_deconv (bool, optional): A bool value indicates whether using deconvolution in upsampling.
          If False, use resize_bilinear. Default: False.
      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.
      pretrained (str, optional): The path or url of pretrained model for fine tuning. Default: None.
      is_ds (bool): use deep supervision or not. Default: True
      
class_docstr_tok: ["The","UNet++","implementation","based","on","PaddlePaddle",".","The","original","article","refers","to","Zongwei","Zhou",",","et",",","al",".","``","UNet++",":","A","Nested","U-Net","Architecture","for","Medical","Image","Segmentation","''","(","https",":","\/\/arxiv.org\/abs\/1807.10165",")",".","Args",":","num_classes","(","int",")",":","The","unique","number","of","target","classes",".","in_channels","(","int",",","optional",")",":","The","channel","number","of","input","image",".","Default",":","3.","use_deconv","(","bool",",","optional",")",":","A","bool","value","indicates","whether","using","deconvolution","in","upsampling",".","If","False",",","use","resize_bilinear",".","Default",":","False",".","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",".","pretrained","(","str",",","optional",")",":","The","path","or","url","of","pretrained","model","for","fine","tuning",".","Default",":","None",".","is_ds","(","bool",")",":","use","deep","supervision","or","not",".","Default",":","True"]
code: def forward(self, inputs):
      # 0 down
      X0_0 = self.conv0_0(inputs)  # n,32,h,w
      pool_0 = self.pool(X0_0)  # n,32,h/2,w/2
      X1_0 = self.conv1_0(pool_0)  # n,64,h/2,w/2
      pool_1 = self.pool(X1_0)  # n,64,h/4,w/4
      X2_0 = self.conv2_0(pool_1)  # n,128,h/4,w/4
      pool_2 = self.pool(X2_0)  # n,128,h/8,n/8
      X3_0 = self.conv3_0(pool_2)  # n,256,h/8,w/8
      pool_3 = self.pool(X3_0)  # n,256,h/16,w/16
      X4_0 = self.conv4_0(pool_3)  # n,512,h/16,w/16
  
      # 1 up+concat
      X0_1 = self.up_cat0_1(X1_0, X0_0)  # n,32,h,w
      X1_1 = self.up_cat1_1(X2_0, X1_0)  # n,64,h/2,w/2
      X2_1 = self.up_cat2_1(X3_0, X2_0)  # n,128,h/4,w/4
      X3_1 = self.up_cat3_1(X4_0, X3_0)  # n,256,h/8,w/8
  
      # 2 up+concat
      X0_2 = self.up_cat0_2(X1_1, X0_0, X0_1)  # n,32,h,w
      X1_2 = self.up_cat1_2(X2_1, X1_0, X1_1)  # n,64,h/2,w/2
      X2_2 = self.up_cat2_2(X3_1, X2_0, X2_1)  # n,128,h/4,w/4
  
      # 3 up+concat
      X0_3 = self.up_cat0_3(X1_2, X0_0, X0_1, X0_2)  # n,32,h,w
      X1_3 = self.up_cat1_3(X2_2, X1_0, X1_1, X1_2)  # n,64,h/2,w/2
  
      # 4 up+concat
      X0_4 = self.up_cat0_4(X1_3, X0_0, X0_1, X0_2, X0_3)  # n,32,h,w
  
      # out conv1*1
      out_1 = self.out_1(X0_1)  # n,num_classes,h,w
      out_2 = self.out_2(X0_2)  # n,num_classes,h,w
      out_3 = self.out_3(X0_3)  # n,num_classes,h,w
      out_4 = self.out_4(X0_4)  # n,num_classes,h,w
  
      output = (out_1 + out_2 + out_3 + out_4) / 4
  
      if self.is_ds:
          return [output]
      else:
          return [out_4]
  
file_path: PaddleSeg/paddleseg/models/unet_plusplus.py
imports: import paddle
  import paddle.nn
  from paddleseg.cvlibs import manager
  from paddleseg.utils import load_entire_model
  from paddleseg.cvlibs.param_init import kaiming_normal_init
  from paddleseg.models.layers.layer_libs import SyncBatchNorm
label_desc: Use image node_id 3 for calling the UNetPlusPlus obj's underlying member method code with example usage: obj.forward(inputs) and returns: list, list