code: def evaluate_repeatedly(self,
                            accuracy,
                            num_steps,
                            feed_vars=(),
                            feed_data=None,
                            summary_tag=None,
                            evaluation_times=-1):
      
      current_checkpoint = None
      try:
        for i in itertools.count(0):
          # New session each time to reset queues - Yay.
          with self.session() as sess:
            current_checkpoint = self.load_new_checkpoint_when_available(
                sess, current_checkpoint)
            # Create relevant ops before starting queue runners.
            self._run_init_test_vars_op()
  
            accuracy_result = self.evaluate_model(accuracy,
                                                  num_steps,
                                                  summary_tag=summary_tag,
                                                  print_every=0,
                                                  feed_vars=feed_vars,
                                                  feed_data=feed_data)
            if not summary_tag:
              print('[%d] %s' % (sess.run(bookkeeper.global_step()),
                                 accuracy_result))
            if (i + 1) == evaluation_times:
              return accuracy_result
      finally:
        print('Shutting down')
        sys.stdout.flush()
        self.stop_queues()
docs: Runs the evaluation in a loop for `evaluation_times`.
  
      On each iteration, `evaluate_model` is called with the supplied arguments.
      This manages the queue threads itself.
  
      Args:
        accuracy: The metric that is being evaluated.
        num_steps: The number of steps to run in the evaluator.
        feed_vars: A list or tuple of the variables that will be fed.
        feed_data: A generator that produces tuples of the same length as
          feed_vars.
        summary_tag: If provided, the final result of each evaluation will be
          published to this tag.
        evaluation_times: Run this loop for this many times or forever if it is
          `-1`.
  
      Returns:
        The final evaluation result from `evaluate_model` if `evaluation_times`
        ever ends.