class_docstr: Run hook used by the evaluation routines to run the `eval_ops` N times.
code: def after_run(self, run_context, run_values):
      evals_completed = run_values.results["evals_completed"]
      # Update number of steps to run in the next iteration
      if self._num_evals is None:
          steps = self._steps_per_run_initial_value
      else:
          steps = min(
              self._num_evals - evals_completed,
              self._steps_per_run_initial_value,
          )
      self._steps_per_run_variable.load(
          steps, session=run_context.session
      )
  
      if self._num_evals is None:
          logging.info("Evaluation [%d]", evals_completed)
      else:
          logging.info(
              "Evaluation [%d/%d]", evals_completed, self._num_evals
          )
      if (
          self._num_evals is not None
          and evals_completed >= self._num_evals
      ):
          run_context.request_stop()
  
imports: import math
  import time
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import init_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import state_ops
  from tensorflow.python.ops import variable_scope
  from tensorflow.python.platform import tf_logging
  from tensorflow.python.training import basic_session_run_hooks
  from tensorflow.python.training import monitored_session
  from tensorflow.python.training import session_run_hook
label_desc: Use image node_id 6 for calling the _MultiStepStopAfterNEvalsHook obj's underlying member method code with example usage: obj.after_run(run_context, run_values) without return types