docstr: :param n_output_chns: int, number of output channels
  :param stride: int, stride to use in the convolutional layers
  :param Conv: layer, convolutional layer
  :param name: layer name
docstr_tok: [":","param","n_output_chns",":","int",",","number","of","output","channels",":","param","stride",":","int",",","stride","to","use","in","the","convolutional","layers",":","param","Conv",":","layer",",","convolutional","layer",":","param","name",":","layer","name"]
code: def __init__(self, n_output_chns, stride, Conv, name="bottleneck"):
      """
  
      :param n_output_chns: int, number of output channels
      :param stride: int, stride to use in the convolutional layers
      :param Conv: layer, convolutional layer
      :param name: layer name
      """
      self.n_output_chns = n_output_chns
      self.stride = stride
      self.bottle_neck_chns = n_output_chns // 4
      self.Conv = Conv
      super(BottleneckBlock, self).__init__(name=name)
  
imports: from __future__ import absolute_import, print_function
  import functools
  from collections import namedtuple
  import tensorflow
  from niftynet.layer import layer_util
  from niftynet.layer.base_layer import TrainableLayer
  from niftynet.layer.bn import BNLayer
  from niftynet.layer.convolution import ConvolutionalLayer
  from niftynet.layer.fully_connected import FCLayer
  from niftynet.layer.squeeze_excitation import ChannelSELayer
  from niftynet.network.base_net import BaseNet
label_desc: Use image node_id 1 to create a new BottleneckBlock object from inherited base classes: TrainableLayer with example: obj = BottleneckBlock(n_output_chns, stride, Conv, name)