code: def __init__(
      self,
      in_channels=(1024, 1024),
      mid_channels=(1024, 1024),
      out_channels=2048,
      ds_scales=((1, 1, 1), (1, 1, 1)),
  ):
      super(LevelFusion, self).__init__()
      self.ops = nn.ModuleList()
      num_ins = len(in_channels)
      for i in range(num_ins):
          op = Downampling(
              in_channels[i],
              mid_channels[i],
              kernel_size=(1, 1, 1),
              stride=(1, 1, 1),
              padding=(0, 0, 0),
              bias=False,
              groups=32,
              norm=True,
              activation=True,
              downsample_position="before",
              downsample_scale=ds_scales[i],
          )
          self.ops.append(op)
  
      in_dims = np.sum(mid_channels)
      self.fusion_conv = nn.Sequential(
          nn.Conv3d(in_dims, out_channels, 1, 1, 0, bias=False),
          nn.BatchNorm3d(out_channels),
          nn.ReLU(inplace=True),
      )
  
imports: import numpy
  import torch
  import torch.nn
  import torch.utils.checkpoint
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new LevelFusion object from inherited base classes: nn with example: obj = LevelFusion(in_channels, mid_channels, out_channels, ds_scales)