class_docstr: Benchmark concat.
code: def benchmark_concat(self):
      print("Forward vs backward concat")
      shapes = [
          [2000, 8],
          [8, 2000],
          [100, 18],
          [1000, 18],
          [100, 97],
          [1000, 97],
          [10000, 1],
          [1, 10000],
      ]
      axis_ = [0, 1]
      num_inputs = 20
      num_iters = [10] * len(shapes)
      variable = [False, True]  # fixed input size or not
      for shape, iters in zip(shapes, num_iters):
          for axis in axis_:
              for v in variable:
                  self._run_graph(
                      "cpu", shape, v, num_inputs, axis, True, iters
                  )
  
file_path: tensorflow/tensorflow/python/ops/concat_benchmark.py
imports: import itertools
  import random
  import time
  from tensorflow.core.protobuf import config_pb2
  from tensorflow.python.client import session
  from tensorflow.python.framework import ops
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import control_flow_ops
  from tensorflow.python.ops import gradients_impl
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
label_desc: Use image node_id 2 for calling the ConcatBenchmark obj's underlying member method code with example usage: obj.benchmark_concat() without return types