class_docstr: Implementation of bilinear (or trilinear) additive upsampling layer,
  described in paper:
  
      Wojna et al., The devil is in the decoder,
      https://arxiv.org/abs/1707.05847
  
  In the paper 2D images are upsampled by a factor of 2 and ``n_splits = 4``
docstr: :param new_size: integer or a list of integers set the output
      2D/3D spatial shape.  If the parameter is an integer ``d``,
      it'll be expanded to ``(d, d)`` and ``(d, d, d)`` for 2D and
      3D inputs respectively.
  :param n_splits: integer, the output tensor will have ``C / n_splits``
      channels, where ``C`` is the number of channels of the input.
      (``n_splits`` must evenly divide ``C``.)
  :param name: (optional) name of the layer
docstr_tok: [":","param","new_size",":","integer","or","a","list","of","integers","set","the","output","2D\/3D","spatial","shape",".","If","the","parameter","is","an","integer","``","d","``",",","it","'ll","be","expanded","to","``","(","d",",","d",")","``","and","``","(","d",",","d",",","d",")","``","for","2D","and","3D","inputs","respectively",".",":","param","n_splits",":","integer",",","the","output","tensor","will","have","``","C","\/","n_splits","``","channels",",","where","``","C","``","is","the","number","of","channels","of","the","input",".","(","``","n_splits","``","must","evenly","divide","``","C","``",".",")",":","param","name",":","(","optional",")","name","of","the","layer"]
code: def __init__(
      self, new_size, n_splits, name="linear_additive_upsample"
  ):
      """
  
      :param new_size: integer or a list of integers set the output
          2D/3D spatial shape.  If the parameter is an integer ``d``,
          it'll be expanded to ``(d, d)`` and ``(d, d, d)`` for 2D and
          3D inputs respectively.
      :param n_splits: integer, the output tensor will have ``C / n_splits``
          channels, where ``C`` is the number of channels of the input.
          (``n_splits`` must evenly divide ``C``.)
      :param name: (optional) name of the layer
      """
      super(AdditiveUpsampleLayer, self).__init__(name=name)
      self.new_size = new_size
      self.n_splits = int(n_splits)
  
file_path: NiftyNet/niftynet/layer/additive_upsample.py
imports: from __future__ import absolute_import, print_function
  import tensorflow
  from niftynet.layer.base_layer import Layer
  from niftynet.layer.base_layer import TrainableLayer
  from niftynet.layer.linear_resize import LinearResizeLayer
  from niftynet.layer.deconvolution import DeconvolutionalLayer
  from niftynet.layer.layer_util import check_divisible_channels
  from niftynet.layer.elementwise import ElementwiseLayer
label_desc: Use image node_id 1 to create a new AdditiveUpsampleLayer object from inherited base classes: Layer with example: obj = AdditiveUpsampleLayer(new_size, n_splits, name)