docstr: Records elapse time of the batch and calculates examples per second.
docstr_tok: ["Records","elapse","time","of","the","batch","and","calculates","examples","per","second","."]
code: def on_batch_end(self, batch, logs=None):
      """Records elapse time of the batch and calculates examples per second."""
      if self.global_steps % self.log_steps == 0:
          timestamp = time.time()
          elapsed_time = timestamp - self.start_time
          examples_per_second = (
              self.batch_size * self.log_steps
          ) / elapsed_time
          if hvd.rank() == 0:
              print(
                  "global_step: %d images_per_sec: %.1f"
                  % (self.global_steps, examples_per_second)
              )
          self.start_time = timestamp
  
file_path: DALI/docs/examples/use_cases/tensorflow/resnet-n/nvutils/runner.py
imports: from nvutils import image_processing
  from nvutils import common
  from distutils.version import StrictVersion
  import tensorflow
  import keras
  import os
  import time
  import re
  import horovod.tensorflow.keras
  from keras import backend
label_desc: Use image node_id 3 for calling the _ProfileKerasFitCallback obj's underlying member method code with example usage: obj.on_batch_end(batch, logs) without return types