original_docstring:  An inverted residual bottleneck block consisting of a separable depthwise convolution and 1x1 pointise
          convolution and an optional Squeeze-and-Excitation block.
  
          Parameters
          ----------
          inputs : tf.Tensor
              input tensor
          repeats : int
              number of repeats of the block
          kernel_size : int
              kernel size for depthwise convolution
          filters : int
              number of output filters
          residual : bool
              whether to make a residual connection
          strides : int
              stride for 3x3 convolution
          expansion_factor : int
              multiplier for the number of filters in internal convolutions
          width_factor : float
              multiplier for the number of filters
          activation : callable, optional
              If not specified tf.nn.relu is used.
          se_block : bool or dict
              whether to include squeeze and excitation block.
              If dict, it must contain :meth:`~TFModel.se_block` params
          name : str
              scope name
  
          Returns
          -------
          tf.Tensor
          
docstring: An inverted residual bottleneck block consisting of a separable depthwise convolution and 1x1 pointise
  convolution and an optional Squeeze-and-Excitation block.
  
  Parameters
  
  
  
  Returns
  
  
docstring_tokens: An inverted residual bottleneck block consisting of a separable depthwise convolution and 1x1 pointise convolution and an optional Squeeze - and - Excitation block . Parameters Returns
code: def block(cls, inputs, filters, residual=False, strides=1, expansion_factor=4, width_factor=1, kernel_size=3,
                se_block=False, name=None, repeats=1, residual_agg='sum', **kwargs):
          """ An inverted residual bottleneck block consisting of a separable depthwise convolution and 1x1 pointise
          convolution and an optional Squeeze-and-Excitation block.
  
          Parameters
          ----------
          inputs : tf.Tensor
              input tensor
          repeats : int
              number of repeats of the block
          kernel_size : int
              kernel size for depthwise convolution
          filters : int
              number of output filters
          residual : bool
              whether to make a residual connection
          strides : int
              stride for 3x3 convolution
          expansion_factor : int
              multiplier for the number of filters in internal convolutions
          width_factor : float
              multiplier for the number of filters
          activation : callable, optional
              If not specified tf.nn.relu is used.
          se_block : bool or dict
              whether to include squeeze and excitation block.
              If dict, it must contain :meth:`~TFModel.se_block` params
          name : str
              scope name
  
          Returns
          -------
          tf.Tensor
          """
          with tf.variable_scope(name):
              for k in range(repeats):
                  if k > 0:
                      strides = 1
                  num_filters = int(cls.num_channels(inputs, kwargs.get('data_format')) * expansion_factor * width_factor)
                  x = conv_block(inputs, layout='cna wna', filters=num_filters, kernel_size=[1, kernel_size],
                                 strides=[1, strides], name='-%d-exp' % k, **kwargs)
                  if se_block:
                      if not isinstance(se_block, dict):
                          se_block = dict(activation=[kwargs.get('activation', tf.nn.relu), h_sigmoid],
                                          ratio=num_filters // 4)
                      x = cls.se_block(x, name='-%d-se' % k, **{**kwargs, **se_block})
                  x = conv_block(x, layout='cn', filters=filters, kernel_size=1, name='-%d-down' % k, **kwargs)
                  if residual or k > 0:
                      x = combine((inputs, x), op=residual_agg)
                  inputs = x
          return x
code_tokens: def block ( cls , inputs , filters , residual = False , strides = 1 , expansion_factor = 4 , width_factor = 1 , kernel_size = 3 , se_block = False , name = None , repeats = 1 , residual_agg = 'sum' , ** kwargs ) : with tf . variable_scope ( name ) : for k in range ( repeats ) : if k > 0 : strides = 1 num_filters = int ( cls . num_channels ( inputs , kwargs . get ( 'data_format' ) ) * expansion_factor * width_factor ) x = conv_block ( inputs , layout = 'cna wna' , filters = num_filters , kernel_size = [ 1 , kernel_size ] , strides = [ 1 , strides ] , name = '-%d-exp' % k , ** kwargs ) if se_block : if not isinstance ( se_block , dict ) : se_block = dict ( activation = [ kwargs . get ( 'activation' , tf . nn . relu ) , h_sigmoid ] , ratio = num_filters // 4 ) x = cls . se_block ( x , name = '-%d-se' % k , ** { ** kwargs , ** se_block } ) x = conv_block ( x , layout = 'cn' , filters = filters , kernel_size = 1 , name = '-%d-down' % k , ** kwargs ) if residual or k > 0 : x = combine ( ( inputs , x ) , op = residual_agg ) inputs = x return x
short_docstring: An inverted residual bottleneck block consisting of a separable depthwise convolution and 1x1 pointise
  convolution and an optional Squeeze-and-Excitation block.
short_docstring_tokens: An inverted residual bottleneck block consisting of a separable depthwise convolution and 1x1 pointise convolution and an optional Squeeze - and - Excitation block .
comment: """ An inverted residual bottleneck block consisting of a separable depthwise convolution and 1x1 pointise
          convolution and an optional Squeeze-and-Excitation block.
  
          Parameters
          ----------
          inputs : tf.Tensor
              input tensor
          repeats : int
              number of repeats of the block
          kernel_size : int
              kernel size for depthwise convolution
          filters : int
              number of output filters
          residual : bool
              whether to make a residual connection
          strides : int
              stride for 3x3 convolution
          expansion_factor : int
              multiplier for the number of filters in internal convolutions
          width_factor : float
              multiplier for the number of filters
          activation : callable, optional
              If not specified tf.nn.relu is used.
          se_block : bool or dict
              whether to include squeeze and excitation block.
              If dict, it must contain :meth:`~TFModel.se_block` params
          name : str
              scope name
  
          Returns
          -------
          tf.Tensor
          """