'predict.
Run data through the provided network and return the result value.
Arguments:
feed_dict: `dict`. Feed data dictionary, with placeholders as
keys, and data as values.
Returns:
An `array`. In case of multiple tensors to predict, each tensor\'s
prediction result is concatenated.'

def predict(self, feed_dict):

    with self.graph.as_default():
        dprep_dict = dict()
        for i in range(len(self.inputs)):
            if (len(self.dprep_collection) > i):
                if (self.dprep_collection[i] is not None):
                    dprep_dict[self.inputs[i]] = self.dprep_collection[i]
        if (len(dprep_dict) > 0):
            for k in dprep_dict:
                feed_dict[k] = dprep_dict[k].apply(feed_dict[k])
        tflearn.is_training(False, self.session)
        prediction = []
        if (len(self.tensors) == 1):
            return self.session.run(self.tensors[0], feed_dict=feed_dict)
        else:
            for output in self.tensors:
                o_pred = self.session.run(output, feed_dict=feed_dict).tolist()
                for (i, val) in enumerate(o_pred):
                    if (len(self.tensors) > 1):
                        if (not (len(prediction) > i)):
                            prediction.append([])
                        prediction[i].append(val)
            return prediction
