class_docstr: MBConv-like block without depthwise convolution and squeeze-and-excite.
class_docstr_tok: ["MBConv-like","block","without","depthwise","convolution","and","squeeze-and-excite","."]
docstr: Implementation of call().
  
  Args:
    inputs: the inputs tensor.
    training: boolean, whether the model is constructed for training.
    survival_prob: float, between 0 to 1, drop connect rate.
  
  Returns:
    A output tensor.
docstr_tok: ["Implementation","of","call","(",")",".","Args",":","inputs",":","the","inputs","tensor",".","training",":","boolean",",","whether","the","model","is","constructed","for","training",".","survival_prob",":","float",",","between","0","to","1",",","drop","connect","rate",".","Returns",":","A","output","tensor","."]
code: def call(self, inputs, training, survival_prob=None):
      """Implementation of call().
  
      Args:
        inputs: the inputs tensor.
        training: boolean, whether the model is constructed for training.
        survival_prob: float, between 0 to 1, drop connect rate.
  
      Returns:
        A output tensor.
      """
  
      @utils.recompute_grad(self._global_params.grad_checkpoint)
      def _call(inputs):
          logging.info(
              "Block %s  input shape: %s", self.name, inputs.shape
          )
          if self._block_args.expand_ratio != 1:
              x = self._relu_fn(
                  self._bn0(
                      self._expand_conv(inputs), training=training
                  )
              )
          else:
              x = inputs
          logging.info("Expand shape: %s", x.shape)
  
          self.endpoints = {"expansion_output": x}
  
          x = self._bn1(self._project_conv(x), training=training)
          # Add identity so that quantization-aware training can insert quantization
          # ops correctly.
          x = tf.identity(x)
          if self._clip_projection_output:
              x = tf.clip_by_value(x, -6, 6)
  
          if self._block_args.id_skip:
              if (
                  all(s == 1 for s in self._block_args.strides)
                  and self._block_args.input_filters
                  == self._block_args.output_filters
              ):
                  # Apply only if skip connection presents.
                  if survival_prob:
                      x = utils.drop_connect(x, training, survival_prob)
                  x = tf.add(x, inputs)
          logging.info("Project shape: %s", x.shape)
          return x
  
      return _call(inputs)
  
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 2 for calling the MBConvBlockWithoutDepthwise obj's underlying member method code with example usage: obj.call(inputs, training, survival_prob) and returns: _call, x