code: def benchmark_gather_nd_op(self):
      shape = (100, 47, 18, 170, 13)
      np.random.seed(127)
      params = np.random.rand(*shape)
      indices = np.vstack(
          [np.random.randint(0, s, size=10000) for s in shape]
      ).T
  
      with session.Session():
          t_params = variables.Variable(params)
          t_indices = variables.Variable(indices)
          gather_op = array_ops.gather_nd(t_params, t_indices)
          self.evaluate(variables.global_variables_initializer())
          for _ in range(10):
              self.evaluate(gather_op)
          t1 = time.time()
          for _ in range(1000):
              self.evaluate(gather_op)
          t2 = time.time()
          self.report_benchmark(
              iters=1000, wall_time=(t2 - t1) / 1000.0
          )
  
imports: import time
  import numpy
  from tensorflow.python.client import session
  from tensorflow.python.eager import context
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import indexed_slices
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gradients_impl
  from tensorflow.python.ops import ref_variable
  from tensorflow.python.ops import resource_variable_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
label_desc: Use image node_id 1 for calling the GatherNdOpBenchmark obj's underlying member method code with example usage: obj.benchmark_gather_nd_op() without return types