code: def __init__(self, in_size, out_size, is_deconv, is_batchnorm=True):
      super(UnetUp3, self).__init__()
      if is_deconv:
          self.conv = UnetConv3(in_size, out_size, is_batchnorm)
          self.up = nn.ConvTranspose3d(
              in_size,
              out_size,
              kernel_size=(4, 4, 4),
              stride=(2, 2, 2),
              padding=(1, 1, 1),
          )
      else:
          self.conv = UnetConv3(
              in_size + out_size, out_size, is_batchnorm
          )
          self.up = nn.Upsample(
              scale_factor=(2, 2, 2), mode="trilinear"
          )
  
      # initialise the blocks
      for m in self.children():
          if m.__class__.__name__.find("UnetConv3") != -1:
              continue
          init_weights(m, init_type="kaiming")
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from torch.nn import init
label_desc: Use image node_id 1 to create a new UnetUp3 object from inherited base classes: nn with example: obj = UnetUp3(in_size, out_size, is_deconv, is_batchnorm)