'Exposes all the layers of the model returned by get_layer_names.
:param x: A symbolic representation of the network input
:return: A dictionary mapping layer names to the symbolic
representation of their output.'

def fprop(self, x):

    from keras.models import Model as KerasModel
    if (self.keras_model is None):
        new_input = self.model.get_input_at(0)
        out_layers = [x_layer.output for x_layer in self.model.layers]
        self.keras_model = KerasModel(new_input, out_layers)
    outputs = self.keras_model(x)
    if (len(self.model.layers) == 1):
        outputs = [outputs]
    fprop_dict = dict(zip(self.get_layer_names(), outputs))
    return fprop_dict
