class_docstr: Squeeze-and-excitation layer.
class_docstr_tok: ["Squeeze-and-excitation","layer","."]
code: def __init__(
      self, global_params, se_filters, output_filters, name=None
  ):
      super().__init__(name=name)
  
      self._local_pooling = global_params.local_pooling
      self._data_format = global_params.data_format
      self._relu_fn = global_params.relu_fn or tf.nn.swish
  
      # Squeeze and Excitation layer.
      self._se_reduce = tf.keras.layers.Conv2D(
          se_filters,
          kernel_size=[1, 1],
          strides=[1, 1],
          kernel_initializer=conv_kernel_initializer,
          padding="same",
          data_format=self._data_format,
          use_bias=True,
          name="conv2d",
      )
      self._se_expand = tf.keras.layers.Conv2D(
          output_filters,
          kernel_size=[1, 1],
          strides=[1, 1],
          kernel_initializer=conv_kernel_initializer,
          padding="same",
          data_format=self._data_format,
          use_bias=True,
          name="conv2d_1",
      )
  
imports: import collections
  import itertools
  import math
  from absl import logging
  import numpy
  import six
  from six.moves import xrange
  import tensorflow
  import utils
label_desc: Use image node_id 1 to create a new SE object from inherited base classes: tf.keras.layers with example: obj = SE(global_params, se_filters, output_filters, name)