class_docstr: Class that implements an adapted UNet. This class also serve as the parent class of LocalNet and GlobalNet
  
  Reference:
      O. Ronneberger, P. Fischer, and T. Brox,
      “U-net: Convolutional networks for biomedical image segmentation,”,
      Lecture Notes in Computer Science, 2015, vol. 9351, pp. 234–241.
      https://arxiv.org/abs/1505.04597
  
  Adapted from:
      DeepReg (https://github.com/DeepRegNet/DeepReg)
code: def build_encode_layers(self):
      # encoding / down-sampling
      self.encode_convs = nn.ModuleList(
          [
              self.build_conv_block(
                  in_channels=self.in_channels
                  if d == 0
                  else self.num_channels[d - 1],
                  out_channels=self.num_channels[d],
                  kernel_size=self.encode_kernel_sizes[d],
              )
              for d in range(self.depth)
          ]
      )
      self.encode_pools = nn.ModuleList(
          [
              self.build_down_sampling_block(
                  channels=self.num_channels[d]
              )
              for d in range(self.depth)
          ]
      )
      self.bottom_block = self.build_bottom_block(
          in_channels=self.num_channels[-2],
          out_channels=self.num_channels[-1],
      )
  
imports: from __future__ import annotations
  import torch
  from torch import nn
  from torch.nn import functional
  from monai.networks.blocks.regunet_block import RegistrationDownSampleBlock, RegistrationExtractionBlock, RegistrationResidualConvBlock, get_conv_block, get_deconv_block
  from monai.networks.utils import meshgrid_ij
label_desc: Use image node_id 3 for calling the RegUNet obj's underlying member method code with example usage: obj.build_encode_layers() without return types