class_docstr: Run hook used by the evaluation routines to run the `eval_ops` N times.
class_docstr_tok: ["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"]
      if self._log_progress:
          if self._num_evals is None:
              logging.info("Evaluation [%d]", evals_completed)
          else:
              if (evals_completed % self._log_frequency) == 0 or (
                  self._num_evals == evals_completed
              ):
                  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 4 for calling the _StopAfterNEvalsHook obj's underlying member method code with example usage: obj.after_run(run_context, run_values) without return types