'Score predictions generated with a receptive field.
This calls `self.predict`, then masks the output of this
and `y` with `self.mask_prediction_`. Finally, it passes
this to a `sklearn` scorer.
Parameters
X : array, shape (n_times[, n_epochs], n_channels)
The input features for the model.
y : array, shape (n_times[, n_epochs][, n_outputs])
Used for scikit-learn compatibility.
Returns
scores : list of float, shape (n_outputs,)
The scores estimated by the model for each output (e.g. mean
R2 of ``predict(X)``).'

def score(self, X, y):

    scorer_ = _SCORERS[self.scoring]
    (X, y) = self._check_dimensions(X, y, predict=True)[:2]
    (n_times, n_epochs, n_outputs) = y.shape
    y_pred = self.predict(X)
    y_pred = y_pred[self.valid_samples_]
    y = y[self.valid_samples_]
    y = y.reshape([(-1), n_outputs], order='F')
    y_pred = y_pred.reshape([(-1), n_outputs], order='F')
    assert (y.shape == y_pred.shape)
    scores = scorer_(y, y_pred, multioutput='raw_values')
    return scores
