code: def __init__(
      self,
      in_channels: int,
      out_channels: int,
      align_corners: bool,
      use_deconv: bool = False,
  ):
      super().__init__()
  
      self.align_corners = align_corners
  
      self.use_deconv = use_deconv
      if self.use_deconv:
          self.deconv = nn.Conv2DTranspose(
              in_channels,
              out_channels // 2,
              kernel_size=2,
              stride=2,
              padding=0,
          )
          in_channels = in_channels + out_channels // 2
      else:
          in_channels *= 2
  
      self.double_conv = nn.Sequential(
          layers.ConvBNReLU(in_channels, out_channels, 3),
          layers.ConvBNReLU(out_channels, out_channels, 3),
      )
  
imports: import os
  from typing import Union, List, Tuple
  import paddle
  from paddle import nn
  import paddle.nn.functional
  import numpy
  from paddlehub.module.module import moduleinfo
  import paddlehub.vision.segmentation_transforms
  from paddlehub.module.cv_module import ImageSegmentationModule
  import unet_cityscapes.layers
label_desc: Use image node_id 1 to create a new UpSampling object from inherited base classes: nn with example: obj = UpSampling(in_channels, out_channels, align_corners, use_deconv)