code: def __init__(
      self,
      n_output_chns=4,
      kernel_size=3,
      downsample_kernel_size=2,
      downsample_stride=2,
      acti_func="relu",
      w_initializer=None,
      w_regularizer=None,
      type_string="bn_acti_conv",
      name="res-downsample",
  ):
      super(TrainableLayer, self).__init__(name=name)
      self.n_output_chns = n_output_chns
      self.kernel_size = kernel_size
      self.downsample_kernel_size = downsample_kernel_size
      self.downsample_stride = downsample_stride
      self.acti_func = acti_func
      self.conv_param = {
          "w_initializer": w_initializer,
          "w_regularizer": w_regularizer,
      }
      self.type_string = type_string
  
file_path: NiftyNet/niftynet/layer/downsample_res_block.py
imports: from __future__ import absolute_import, print_function
  from niftynet.layer.base_layer import TrainableLayer
  from niftynet.layer.convolution import ConvolutionalLayer
  from niftynet.layer.downsample import DownSampleLayer
  from niftynet.layer.residual_unit import ResidualUnit
label_desc: Use image node_id 1 to create a new DownBlock object from inherited base classes: TrainableLayer with example: obj = DownBlock(n_output_chns, kernel_size, downsample_kernel_size, downsample_stride, acti_func, w_initializer, w_regularizer, type_string, name)