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 smaller model with an initial stride-2 convolution)
  
  ### Constraints
  - Input image size should be divisible by 8
class_docstr_tok: ["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","smaller","model","with","an","initial","stride-2","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
docstr_tok: [":","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="HighRes3DNetSmall",
  ):
      """
  
      :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(HighRes3DNetSmall, 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": 80, "kernel_size": 3},
          {
              "name": "conv_2",
              "n_features": num_classes,
              "kernel_size": 1,
          },
      ]
  
file_path: NiftyNet/niftynet/network/highres3dnet_small.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.deconvolution import DeconvolutionalLayer
  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 HighRes3DNetSmall object from inherited base classes: BaseNet with example: obj = HighRes3DNetSmall(num_classes, w_initializer, w_regularizer, b_initializer, b_regularizer, acti_func, name)