class_docstr: Re-implementation of Squeeze-and-Excitation (SE) block described in::
  
       Hu et al., Squeeze-and-Excitation Networks, arXiv:1709.01507
class_docstr_tok: ["Re-implementation","of","Squeeze-and-Excitation","(","SE",")","block","described","in",":",":","Hu","et","al.",",","Squeeze-and-Excitation","Networks",",","arXiv:1709.01507"]
code: def __init__(
      self,
      func="AVG",
      reduction_ratio=16,
      name="channel_squeeze_excitation",
  ):
      self.func = func.upper()
      self.reduction_ratio = reduction_ratio
      super(ChannelSELayer, self).__init__(name=name)
  
      look_up_operations(self.func, SUPPORTED_OP)
  
file_path: NiftyNet/niftynet/layer/squeeze_excitation.py
imports: from __future__ import absolute_import, print_function
  import tensorflow
  from niftynet.layer.base_layer import Layer
  from niftynet.layer.fully_connected import FullyConnectedLayer
  from niftynet.layer.convolution import ConvolutionalLayer
  from niftynet.utilities.util_common import look_up_operations
label_desc: Use image node_id 1 to create a new ChannelSELayer object from inherited base classes: Layer with example: obj = ChannelSELayer(func, reduction_ratio, name)