'Computes the output shape of the layer.
Assumes that the layer will be built
to match that input shape provided.
# Arguments
input_shape: Shape tuple (tuple of integers)
or list of shape tuples (one per output tensor of the layer).
Shape tuples can include None for free dimensions,
instead of an integer.
# Returns
An input shape tuple.'

def compute_output_shape(self, input_shape):

    if hasattr(self, 'get_output_shape_for'):
        msg = ('Class    `{}.{}`    defines    `get_output_shape_for`    but    does    not    override    `compute_output_shape`.    ' + 'If    this    is    a    Keras    1    layer,    please    implement    `compute_output_shape`    to    support    Keras    2.')
        warnings.warn(msg.format(type(self).__module__, type(self).__name__), stacklevel=2)
    return input_shape
