'Evaluate.
Evaluate model metric(s) on given samples.
Arguments:
X: array, `list` of array (if multiple inputs) or `dict`
(with inputs layer name as keys). Data to feed to train
model.
Y: array, `list` of array (if multiple inputs) or `dict`
(with estimators layer name as keys). Targets (Labels) to
feed to train model. Usually set as the next element of a
sequence, i.e. for x[0] => y[0] = x[1].
batch_size: `int`. The batch size. Default: 128.
Returns:
The metric(s) score.'

def evaluate(self, X, Y, batch_size=128):

    feed_dict = feed_dict_builder(X, Y, self.inputs, self.targets)
    ops = [o.metric for o in self.train_ops]
    return self.predictor.evaluate(feed_dict, ops, batch_size)
