class_docstr: This class includes all the information needed to benchmark an operator.
  op_bench: it's a user-defined class (child of TorchBenchmarkBase)
  which includes input and operator, .etc
  test_config: a namedtuple includes test_name, input_shape, tag, run_backward.
  When run_backward is false, the run_forward method will be executed,
  When run_backward is true, run_forward_eager and _output_mean will be
  executed to generate output. Then, run_backward will be executed.
code: def _print_per_iter(self):
      # print last 50 values
      length = min(len(self.time_series), 50)
      for i in range(length):
          print(
              "PyTorchObserver "
              + json.dumps(
                  {
                      "type": self.test_config.test_name,
                      "metric": "latency",
                      "unit": "ms",
                      "value": str(self.time_series[length - i - 1]),
                  }
              )
          )
  
imports: import json
  import time
  import benchmark_cpp_extension
  import torch
label_desc: Use image node_id 4 for calling the PyTorchOperatorTestCase obj's underlying member method code with example usage: obj._print_per_iter() without return types