class_docstr: Reimplementation of LocalNet, based on:
  `Weakly-supervised convolutional neural networks for multimodal image registration
  <https://doi.org/10.1016/j.media.2018.07.002>`_.
  `Label-driven weakly-supervised learning for multimodal deformable image registration
  <https://arxiv.org/abs/1711.01666>`_.
  
  Adapted from:
      DeepReg (https://github.com/DeepRegNet/DeepReg)
code: def build_up_sampling_block(
      self, in_channels: int, out_channels: int
  ) -> nn.Module:
      if self.use_additive_upsampling:
          return AdditiveUpSampleBlock(
              spatial_dims=self.spatial_dims,
              in_channels=in_channels,
              out_channels=out_channels,
              mode=self.mode,
              align_corners=self.align_corners,
          )
  
      return get_deconv_block(
          spatial_dims=self.spatial_dims,
          in_channels=in_channels,
          out_channels=out_channels,
      )
  
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 LocalNet obj's underlying member method code with example usage: obj.build_up_sampling_block(in_channels, out_channels) and returns: get_deconv_block, AdditiveUpSampleBlock