docs: def after_run(self, run_context, run_values):  # pylint: disable=unused-argument
      """Called after each call to run().
  
      Args:
        run_context: A SessionRunContext object.
        run_values: A SessionRunValues object.
      """
      global_step = run_values.results
  
      if self._timer.should_trigger_for_step(
          global_step) and global_step > self._warm_steps:
        elapsed_time, elapsed_steps = self._timer.update_last_triggered_step(
            global_step)
        if elapsed_time is not None:
          self._step_train_time += elapsed_time
          self._total_steps += elapsed_steps
  
          # average examples per second is based on the total (accumulative)
          # training steps and training time so far
          average_examples_per_sec = self._batch_size * (
              self._total_steps / self._step_train_time)
          # current examples per second is based on the elapsed training steps
          # and training time per batch
          current_examples_per_sec = self._batch_size * (
              elapsed_steps / elapsed_time)
          # Current examples/sec followed by average examples/sec
          tf.logging.info('Batch [%g]:  current exp/sec = %g, average exp/sec = '
                          '%g', self._total_steps, current_examples_per_sec,
                          average_examples_per_sec)