code: def ensemble_preds(dataset, nb_teachers, stdnt_data):
      """
      Given a dataset, a number of teachers, and some input data, this helper
      function queries each teacher for predictions on the data and returns
      all predictions in a single array. (That can then be aggregated into
      one single prediction per input using aggregation.py (cf. function
      prepare_student_data() below)
      :param dataset: string corresponding to mnist, cifar10, or svhn
      :param nb_teachers: number of teachers (in the ensemble) to learn from
      :param stdnt_data: unlabeled student training data
      :return: 3d array (teacher id, sample id, probability per class)
      """
  
      # Compute shape of array that will hold probabilities produced by each
      # teacher, for each training point, and each output class
      result_shape = (nb_teachers, len(stdnt_data), FLAGS.nb_labels)
  
      # Create array that will hold result
      result = np.zeros(result_shape, dtype=np.float32)
  
      # Get predictions from each teacher
      for teacher_id in xrange(nb_teachers):
          # Compute path of checkpoint file for teacher model with ID teacher_id
          if FLAGS.deeper:
              ckpt_path = (
                  FLAGS.teachers_dir
                  + "/"
                  + str(dataset)
                  + "_"
                  + str(nb_teachers)
                  + "_teachers_"
                  + str(teacher_id)
                  + "_deep.ckpt-"
                  + str(FLAGS.teachers_max_steps - 1)
              )  # NOLINT(long-line)
          else:
              ckpt_path = (
                  FLAGS.teachers_dir
                  + "/"
                  + str(dataset)
                  + "_"
                  + str(nb_teachers)
                  + "_teachers_"
                  + str(teacher_id)
                  + ".ckpt-"
                  + str(FLAGS.teachers_max_steps - 1)
              )  # NOLINT(long-line)
  
          # Get predictions on our training data and store in result array
          result[teacher_id] = deep_cnn.softmax_preds(
              stdnt_data, ckpt_path
          )
  
          # This can take a while when there are a lot of teachers so output status
          print(
              "Computed Teacher "
              + str(teacher_id)
              + " softmax predictions"
          )
  
      return result
  
file_path: privacy/research/pate_2017/train_student.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import aggregation
  import deep_cnn
  import input
  import metrics
  import numpy
  from six.moves import xrange
  import tensorflow.compat.v1
label_desc: Use image node_id 1 for calling a global function with example usage: ensemble_preds(dataset, nb_teachers, stdnt_data) and returns: result