class_docstr: Squeeze and Excitation layer (SE) proposed in [Squeeze-and-Excitation Networks](https://arxiv.org/abs/1709.01507).
class_docstr_tok: ["Squeeze","and","Excitation","layer","(","SE",")","proposed","in","[","Squeeze-and-Excitation","Networks","]","(","https",":","\/\/arxiv.org\/abs\/1709.01507",")","."]
code: def __init__(self, in_channels: int, reduced_channels: int, **kwargs):
      super().__init__(**kwargs)
      self.pooler = tf.keras.layers.GlobalAveragePooling2D(
          keepdims=True, name="pooler"
      )
      self.attention = [
          tf.keras.layers.Conv2D(
              filters=reduced_channels,
              kernel_size=1,
              activation="relu",
              name="attention.0",
          ),
          tf.keras.layers.Conv2D(
              filters=in_channels,
              kernel_size=1,
              activation="sigmoid",
              name="attention.2",
          ),
      ]
      self.in_channels = in_channels
      self.reduced_channels = reduced_channels
  
imports: from typing import Optional, Tuple, Union
  import tensorflow
  from ...activations_tf import ACT2FN
  from ...file_utils import add_code_sample_docstrings, add_start_docstrings, add_start_docstrings_to_model_forward
  from ...modeling_tf_outputs import TFBaseModelOutputWithNoAttention, TFBaseModelOutputWithPoolingAndNoAttention, TFSequenceClassifierOutput
  from ...modeling_tf_utils import TFPreTrainedModel, TFSequenceClassificationLoss, keras_serializable, unpack_inputs
  from ...tf_utils import shape_list
  from ...utils import logging
  from .configuration_regnet import RegNetConfig
label_desc: Use image node_id 1 to create a new TFRegNetSELayer object from inherited base classes: tf.keras.layers with example: obj = TFRegNetSELayer(in_channels, reduced_channels)