import tensorflow as tf

    all_params = []
    all_drop = {}

    @deprecated_alias(layer='prev_layer', end_support_version=1.9)  # TODO remove this line for the 1.9 release
    def __init__(self, prev_layer, name=None):

        if name is None:
            raise ValueError('Layer must have a name.')

        scope_name = tf.get_variable_scope().name
        if scope_name:
            name = scope_name + '/' + name
        self.name = name

        # get all properties of previous layer(s)
        if isinstance(prev_layer, Layer):  # 1. for normal layer have only 1 input i.e. DenseLayer
            # Hint : list(), dict() is pass by value (shallow), without them,
            # it is pass by reference.
