class_docstr: Track step performance statistics.
docstr: Callback for logging performance.
  
  Args:
    batch_size: Total batch size.
    log_steps: Interval of steps between logging of stats.
    num_steps_per_batch: Number of steps per batch.
docstr_tok: ["Callback","for","logging","performance",".","Args",":","batch_size",":","Total","batch","size",".","log_steps",":","Interval","of","steps","between","logging","of","stats",".","num_steps_per_batch",":","Number","of","steps","per","batch","."]
code: def __init__(self, batch_size, log_steps, num_steps_per_batch=1):
      """Callback for logging performance.
  
      Args:
        batch_size: Total batch size.
        log_steps: Interval of steps between logging of stats.
        num_steps_per_batch: Number of steps per batch.
      """
      self.batch_size = batch_size
      super(TimeHistory, self).__init__()
      self.log_steps = log_steps
      self.global_steps = 0
      self.num_steps_per_batch = num_steps_per_batch
  
      # Logs start of step 1 then end of each step based on log_steps interval.
      self.timestamp_log = []
  
imports: import datetime
  import os
  import time
  from typing import Dict, Optional, Tuple
  from absl import logging
  import numpy
  from six.moves import range
  from six.moves import zip
  import tensorflow
  from tensorflow.core.util import event_pb2
  from tensorflow.python.lib.io import tf_record
label_desc: Use image node_id 1 to create a new TimeHistory object from inherited base classes: object with example: obj = TimeHistory(batch_size, log_steps, num_steps_per_batch)