code: def _benchmarkParameterizedOpVsNaiveOp(self, use_gpu):
      num_iters = 50
      print(
          (
              "Composition of new ParameterizedTruncatedNormalOp vs. "
              "naive TruncatedNormalOp [%d iters]"
          )
          % num_iters
      )
      print("Shape\tsec(parameterized)\tsec(naive)\tspeedup")
  
      for shape in [
          [10000, 100],
          [1000, 1000],
          [1000000],
          [100, 100, 100],
          [20, 20, 20, 20],
      ]:
          p_dt, n_dt = parameterized_vs_naive(shape, num_iters, use_gpu)
          print(
              "%s\t%.3f\t%.3f\t%.2f" % (shape, p_dt, n_dt, p_dt / n_dt)
          )
  
          shape_str = "-".join(map(str, shape))
          self.report_benchmark(
              name="parameterized_shape" + shape_str,
              iters=num_iters,
              wall_time=p_dt,
          )
          self.report_benchmark(
              name="naive_shape" + shape_str,
              iters=num_iters,
              wall_time=n_dt,
          )
  
imports: import functools
  import math
  import timeit
  import numpy
  from tensorflow.core.protobuf import config_pb2
  from tensorflow.python.client import session
  from tensorflow.python.eager import backprop
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import random_seed
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import control_flow_ops
  from tensorflow.python.ops import random_ops
  from tensorflow.python.ops import stateless_random_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
  from tensorflow.python.platform import tf_logging
label_desc: Use image node_id 3 for calling the TruncatedNormalBenchmark obj's underlying member method code with example usage: obj._benchmarkParameterizedOpVsNaiveOp(use_gpu) without return types