class_docstr: A class of MBConv: Mobile Inverted Residual Bottleneck.
  
  Attributes:
    endpoints: dict. A list of internal tensors.
class_docstr_tok: ["A","class","of","MBConv",":","Mobile","Inverted","Residual","Bottleneck",".","Attributes",":","endpoints",":","dict",".","A","list","of","internal","tensors","."]
docstr: Call Squeeze and Excitation layer.
  
  Args:
    input_tensor: Tensor, a single input tensor for Squeeze/Excitation layer.
  
  Returns:
    A output tensor, which should have the same shape as input.
docstr_tok: ["Call","Squeeze","and","Excitation","layer",".","Args",":","input_tensor",":","Tensor",",","a","single","input","tensor","for","Squeeze\/Excitation","layer",".","Returns",":","A","output","tensor",",","which","should","have","the","same","shape","as","input","."]
code: def _call_se(self, input_tensor):
      """Call Squeeze and Excitation layer.
  
      Args:
        input_tensor: Tensor, a single input tensor for Squeeze/Excitation layer.
  
      Returns:
        A output tensor, which should have the same shape as input.
      """
      se_tensor = tf.reduce_mean(
          input_tensor, self._spatial_dims, keepdims=True
      )
      se_tensor = self._se_expand(
          self._relu_fn(self._se_reduce(se_tensor))
      )
      logging.info(
          "Built Squeeze and Excitation with tensor shape: %s",
          (se_tensor.shape),
      )
      return tf.sigmoid(se_tensor) * input_tensor
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  import functools
  import math
  from absl import logging
  import numpy
  import six
  from six.moves import xrange
  import tensorflow.compat.v1
  import utils
label_desc: Use image node_id 4 for calling the MBConvBlock obj's underlying member method code with example usage: obj._call_se(input_tensor) and returns: unknown