code: def __init__(
      self,
      in_size,
      out_size,
      is_batchnorm,
      kernel_size=(3, 3, 3),
      padding_size=(1, 1, 1),
      init_stride=(1, 1, 1),
  ):
      super(UnetConv3, self).__init__()
  
      if is_batchnorm:
          self.conv1 = nn.Sequential(
              nn.Conv3d(
                  in_size,
                  out_size,
                  kernel_size,
                  init_stride,
                  padding_size,
              ),
              nn.BatchNorm3d(out_size),
              nn.ReLU(inplace=True),
          )
          self.conv2 = nn.Sequential(
              nn.Conv3d(
                  out_size, out_size, kernel_size, 1, padding_size
              ),
              nn.BatchNorm3d(out_size),
              nn.ReLU(inplace=True),
          )
      else:
          self.conv1 = nn.Sequential(
              nn.Conv3d(
                  in_size,
                  out_size,
                  kernel_size,
                  init_stride,
                  padding_size,
              ),
              nn.ReLU(inplace=True),
          )
          self.conv2 = nn.Sequential(
              nn.Conv3d(
                  out_size, out_size, kernel_size, 1, padding_size
              ),
              nn.ReLU(inplace=True),
          )
  
      # initialise the blocks
      for m in self.children():
          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 UnetConv3 object from inherited base classes: nn with example: obj = UnetConv3(in_size, out_size, is_batchnorm, kernel_size, padding_size, init_stride)