class_docstr: This class defines a high-resolution block with residual connections
  kernels
  
      - specify kernel sizes of each convolutional layer
      - e.g.: kernels=(5, 5, 5) indicate three conv layers of kernel_size 5
  
  with_res
  
      - whether to add residual connections to bypass the conv layers
class_docstr_tok: ["This","class","defines","a","high-resolution","block","with","residual","connections","kernels","-","specify","kernel","sizes","of","each","convolutional","layer","-","e.g",".",":","kernels=","(","5",",","5",",","5",")","indicate","three","conv","layers","of","kernel_size","5","with_res","-","whether","to","add","residual","connections","to","bypass","the","conv","layers"]
docstr: :param input_tensor: tensor, input to the network
  :param is_training: boolean, True if network is in training mode
  :return: tensor, output of the residual block
docstr_tok: [":","param","input_tensor",":","tensor",",","input","to","the","network",":","param","is_training",":","boolean",",","True","if","network","is","in","training","mode",":","return",":","tensor",",","output","of","the","residual","block"]
code: def layer_op(self, input_tensor, is_training):
      """
  
      :param input_tensor: tensor, input to the network
      :param is_training: boolean, True if network is in training mode
      :return: tensor, output of the residual block
      """
      output_tensor = input_tensor
      for i, k in enumerate(self.kernels):
          # create parameterised layers
          bn_op = BNLayer(
              regularizer=self.regularizers["w"], name="bn_{}".format(i)
          )
          acti_op = ActiLayer(
              func=self.acti_func,
              regularizer=self.regularizers["w"],
              name="acti_{}".format(i),
          )
          conv_op = ConvLayer(
              n_output_chns=self.n_output_chns,
              kernel_size=k,
              stride=1,
              w_initializer=self.initializers["w"],
              w_regularizer=self.regularizers["w"],
              name="conv_{}".format(i),
          )
          # connect layers
          output_tensor = bn_op(output_tensor, is_training)
          output_tensor = acti_op(output_tensor)
          output_tensor = conv_op(output_tensor)
      # make residual connections
      if self.with_res:
          output_tensor = ElementwiseLayer("SUM")(
              output_tensor, input_tensor
          )
      return output_tensor
  
file_path: NiftyNet/niftynet/network/highres3dnet.py
imports: from __future__ import absolute_import, print_function
  from six.moves import range
  from niftynet.layer import layer_util
  from niftynet.layer.activation import ActiLayer
  from niftynet.layer.base_layer import TrainableLayer
  from niftynet.layer.bn import BNLayer
  from niftynet.layer.convolution import ConvLayer, ConvolutionalLayer
  from niftynet.layer.dilatedcontext import DilatedTensor
  from niftynet.layer.elementwise import ElementwiseLayer
  from niftynet.network.base_net import BaseNet
label_desc: Use image node_id 2 for calling the HighResBlock obj's underlying member method code with example usage: obj.layer_op(input_tensor, is_training) and returns: output_tensor