'Evaluate.
Evaluate a list of tensors over a whole dataset. Generally,
\'ops\' argument are average performance metrics (such as average mean,
top-3, etc...)
Arguments:
feed_dict: `dict`. The feed dictionary of data.
ops: list of `Tensors`. The tensors to evaluate.
batch_size: `int`. A batch size.
Returns:
The mean average result per tensor over all batches.'

def evaluate(self, feed_dict, ops, batch_size=128):

    tflearn.is_training(False, self.session)
    coord = tf.train.Coordinator()
    inputs = tf.get_collection(tf.GraphKeys.INPUTS)
    dprep_dict = {}
    dprep_collection = tf.get_collection(tf.GraphKeys.DATA_PREP)
    for i in range(len(inputs)):
        if (len(dprep_collection) > i):
            if (dprep_collection[i] is not None):
                dprep_dict[inputs[i]] = dprep_collection[i]
    df = data_flow.FeedDictFlow(feed_dict, coord, batch_size=batch_size, dprep_dict=dprep_dict, daug_dict=None, index_array=None, num_threads=1)
    return evaluate_flow(self.session, ops, df)
