class_docstr: implementation of HighRes3DNet:
  
      Li et al., "On the compactness, efficiency, and representation of 3D
      convolutional networks: Brain parcellation as a pretext task", IPMI '17
  
  (This is a larger version with an additional 3x3x3 convolution)
  
  ### Constraints
  - Input image size should be divisible by 8
docstr: :param num_classes: int, number of channels of output
  :param w_initializer: weight initialisation for network
  :param w_regularizer: weight regularisation for network
  :param b_initializer: bias initialisation for network
  :param b_regularizer: bias regularisation for network
  :param acti_func: activation function to use
  :param name: layer name
code: def __init__(
      self,
      num_classes,
      w_initializer=None,
      w_regularizer=None,
      b_initializer=None,
      b_regularizer=None,
      acti_func="relu",
      name="HighRes3DNet",
  ):
      """
  
      :param num_classes: int, number of channels of output
      :param w_initializer: weight initialisation for network
      :param w_regularizer: weight regularisation for network
      :param b_initializer: bias initialisation for network
      :param b_regularizer: bias regularisation for network
      :param acti_func: activation function to use
      :param name: layer name
      """
  
      super(HighRes3DNetLarge, self).__init__(
          num_classes=num_classes,
          w_initializer=w_initializer,
          w_regularizer=w_regularizer,
          b_initializer=b_initializer,
          b_regularizer=b_regularizer,
          acti_func=acti_func,
          name=name,
      )
  
      self.layers = [
          {"name": "conv_0", "n_features": 16, "kernel_size": 3},
          {
              "name": "res_1",
              "n_features": 16,
              "kernels": (3, 3),
              "repeat": 3,
          },
          {
              "name": "res_2",
              "n_features": 32,
              "kernels": (3, 3),
              "repeat": 3,
          },
          {
              "name": "res_3",
              "n_features": 64,
              "kernels": (3, 3),
              "repeat": 3,
          },
          {"name": "conv_1", "n_features": 64, "kernel_size": 3},
          {"name": "conv_2", "n_features": 64, "kernel_size": 1},
          {
              "name": "conv_3",
              "n_features": num_classes,
              "kernel_size": 1,
          },
      ]
  
file_path: NiftyNet/niftynet/network/highres3dnet_large.py
imports: from __future__ import absolute_import, print_function
  from six.moves import range
  from niftynet.layer import layer_util
  from niftynet.layer.convolution import ConvolutionalLayer
  from niftynet.layer.dilatedcontext import DilatedTensor
  from niftynet.network.base_net import BaseNet
  from niftynet.network.highres3dnet import HighResBlock
label_desc: Use image node_id 1 to create a new HighRes3DNetLarge object from inherited base classes: BaseNet with example: obj = HighRes3DNetLarge(num_classes, w_initializer, w_regularizer, b_initializer, b_regularizer, acti_func, name)