class_docstr: Dense Feature Stack Block
  
  - Stack is initialized with the input from above layers.
  - Iteratively the output of convolution layers is added to the feature stack.
  - Each sequential convolution is performed over all the previous stacked
    channels.
  
  Diagram example:
  
      feature_stack = [Input]
      feature_stack = [feature_stack, conv(feature_stack)]
      feature_stack = [feature_stack, conv(feature_stack)]
      feature_stack = [feature_stack, conv(feature_stack)]
      ...
      Output = [feature_stack, conv(feature_stack)]
docstr: :param n_dense_channels: int, number of dense channels in each block
  :param kernel_size: kernel size for convolutional layers
  :param dilation_rates: dilation rate of each layer in each vblock
  :param use_bdo: boolean, set to True to use batch-wise drop-out
  :param name: tensorflow scope name
  :param kwargs:
docstr_tok: [":","param","n_dense_channels",":","int",",","number","of","dense","channels","in","each","block",":","param","kernel_size",":","kernel","size","for","convolutional","layers",":","param","dilation_rates",":","dilation","rate","of","each","layer","in","each","vblock",":","param","use_bdo",":","boolean",",","set","to","True","to","use","batch-wise","drop-out",":","param","name",":","tensorflow","scope","name",":","param","kwargs",":"]
code: def __init__(
      self,
      n_dense_channels,
      kernel_size,
      dilation_rates,
      use_bdo,
      name="dense_feature_stack_block",
      **kwargs,
  ):
      """
  
      :param n_dense_channels: int, number of dense channels in each block
      :param kernel_size: kernel size for convolutional layers
      :param dilation_rates: dilation rate of each layer in each vblock
      :param use_bdo: boolean, set to True to use batch-wise drop-out
      :param name: tensorflow scope name
      :param kwargs:
      """
  
      super(DenseFeatureStackBlock, self).__init__(name=name)
  
      self.n_dense_channels = n_dense_channels
      self.kernel_size = kernel_size
      self.dilation_rates = dilation_rates
      self.use_bdo = use_bdo
      self.kwargs = kwargs
  
imports: from __future__ import absolute_import, print_function
  import tensorflow
  from niftynet.io.misc_io import image3_axial
  from niftynet.layer import layer_util
  from niftynet.layer.affine_augmentation import AffineAugmentationLayer
  from niftynet.layer.base_layer import TrainableLayer
  from niftynet.layer.bn import BNLayer
  from niftynet.layer.channel_sparse_convolution import ChannelSparseConvolutionalLayer
  from niftynet.layer.convolution import ConvolutionalLayer
  from niftynet.layer.linear_resize import LinearResizeLayer
  from niftynet.layer.downsample import DownSampleLayer
  from niftynet.network.base_net import BaseNet
  from collections import namedtuple
label_desc: Use image node_id 1 to create a new DenseFeatureStackBlock object from inherited base classes: TrainableLayer with example: obj = DenseFeatureStackBlock(n_dense_channels, kernel_size, dilation_rates, use_bdo, name)