from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU
from tensorflow.keras.models import Sequential
from tensorflow.keras.optimizers import Adam

def createDiscriminator(n_inputs=(80,80,3)):
    model = Sequential()
    model.add(Conv2D(128, (5,5), padding='same', input_shape=n_inputs))
    model.add(LeakyReLU(alpha=0.2))
    model.add(Dropout(0.4))
    model.add(Conv2D(128, (5,5), (2,2), padding='same'))
    model.add(LeakyReLU(alpha=0.2))
    model.add(Dropout(0.4))
    model.add(Conv2D(128, (5,5), (2,2), padding='same'))
    model.add(LeakyReLU(alpha=0.2))
    model.add(Dropout(0.4))
    model.add(Conv2D(128, (5,5), (2,2), padding='same'))
    model.add(LeakyReLU(alpha=0.2))
    model.add(Dropout(0.4))
    model.add(Conv2D(128, (5,5), (2,2), padding='same'))
    model.add(LeakyReLU(alpha=0.2))
    model.add(Dropout(0.4))

    model.add(Flatten())
    model.add(Dense(1, activation='sigmoid'))
    opt = Adam(learning_rate=0.0002, beta_1=0.5)
    model.compile(loss='binary_crossentropy', optimizer=opt, metrics=['accuracy'])
    return model

if __name__ == '__main__':
    discriminator = createDiscriminator()
    discriminator.summary()
tensorflow.keras.layers.LeakyReLU tensorflow.keras.layers.Dense tensorflow.keras.layers.Conv2D tensorflow.keras.optimizers.Adam tensorflow.keras.layers.Dropout tensorflow.keras.models.Sequential tensorflow.keras.layers.Flatten
[(6, 'tensorflow.keras.models.Sequential', 'Sequential', ([], {}), False, 'from tensorflow.keras.models import Sequential\n'), (25, 'tensorflow.keras.optimizers.Adam', 'Adam', ([], {'learning_rate': '(0.0002)', 'beta_1': '(0.5)'}), False, 'from tensorflow.keras.optimizers import Adam\n'), (7, 'tensorflow.keras.layers.Conv2D', 'Conv2D', (['(128)', '(5, 5)'], {'padding': '"""same"""', 'input_shape': 'n_inputs'}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (8, 'tensorflow.keras.layers.LeakyReLU', 'LeakyReLU', ([], {'alpha': '(0.2)'}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (9, 'tensorflow.keras.layers.Dropout', 'Dropout', (['(0.4)'], {}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (10, 'tensorflow.keras.layers.Conv2D', 'Conv2D', (['(128)', '(5, 5)', '(2, 2)'], {'padding': '"""same"""'}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (11, 'tensorflow.keras.layers.LeakyReLU', 'LeakyReLU', ([], {'alpha': '(0.2)'}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (12, 'tensorflow.keras.layers.Dropout', 'Dropout', (['(0.4)'], {}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (13, 'tensorflow.keras.layers.Conv2D', 'Conv2D', (['(128)', '(5, 5)', '(2, 2)'], {'padding': '"""same"""'}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (14, 'tensorflow.keras.layers.LeakyReLU', 'LeakyReLU', ([], {'alpha': '(0.2)'}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (15, 'tensorflow.keras.layers.Dropout', 'Dropout', (['(0.4)'], {}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (16, 'tensorflow.keras.layers.Conv2D', 'Conv2D', (['(128)', '(5, 5)', '(2, 2)'], {'padding': '"""same"""'}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (17, 'tensorflow.keras.layers.LeakyReLU', 'LeakyReLU', ([], {'alpha': '(0.2)'}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (18, 'tensorflow.keras.layers.Dropout', 'Dropout', (['(0.4)'], {}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (19, 'tensorflow.keras.layers.Conv2D', 'Conv2D', (['(128)', '(5, 5)', '(2, 2)'], {'padding': '"""same"""'}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (20, 'tensorflow.keras.layers.LeakyReLU', 'LeakyReLU', ([], {'alpha': '(0.2)'}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (21, 'tensorflow.keras.layers.Dropout', 'Dropout', (['(0.4)'], {}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (23, 'tensorflow.keras.layers.Flatten', 'Flatten', ([], {}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n'), (24, 'tensorflow.keras.layers.Dense', 'Dense', (['(1)'], {'activation': '"""sigmoid"""'}), False, 'from tensorflow.keras.layers import Conv2D, Dense, Dropout, Flatten, LeakyReLU\n')]