class_docstr: Main micro benchmark class.
code: def _benchmark_np_and_tf_np(
      self, name, op, args, repeat=None
  ):  # pylint: disable=redefined-builtin
      fn = getattr(np, op)
      assert fn is not None
  
      np_time = self._benchmark_and_report(
          "{}_numpy".format(name), lambda: fn(*args), repeat=repeat
      )
  
      fn = getattr(tfnp, op)
      assert fn is not None
  
      with tf.device("CPU:0"):
          tf_time = self._benchmark_and_report(
              "{}_tfnp_cpu".format(name),
              lambda: fn(*args),
              repeat=repeat,
          )
  
      return np_time, tf_time
  
imports: import gc
  import time
  from absl import flags
  from absl import logging
  import numpy
  import tensorflow.compat.v2
  from tensorflow.python.ops.numpy_ops.integration_test.benchmarks import numpy_mlp
  from tensorflow.python.ops.numpy_ops.integration_test.benchmarks import tf_numpy_mlp
label_desc: Use image node_id 5 for calling the MicroBenchmarks obj's underlying member method code with example usage: obj._benchmark_np_and_tf_np(name, op, args, repeat) and returns: np_time,  tf_time