src.models.discriminator

 1import keras
 2import keras.ops as ops
 3import numpy as np
 4import matplotlib.pyplot as plt
 5from tqdm import tqdm
 6
 7
 8def build_discriminator(input_shape=(256, 256, 1), name="Discriminator"):
 9    """
10    Builds a convolutional discriminator model for GANs.
11
12    Args:
13        input_shape (tuple): Shape of the input image (H, W, C).
14        name (str): Name of the Keras model.
15
16    Returns:
17        keras.Model: The compiled discriminator model.
18    """
19    inputs = keras.layers.Input(shape=input_shape)
20
21    x = keras.layers.Conv2D(32, kernel_size=4, strides=2, padding='same')(inputs)
22    x = keras.layers.LeakyReLU(alpha=0.2)(x)
23
24    x = keras.layers.Conv2D(64, kernel_size=4, strides=2, padding='same')(x)
25    x = keras.layers.BatchNormalization()(x)
26    x = keras.layers.LeakyReLU(alpha=0.2)(x)
27
28    x = keras.layers.Conv2D(128, kernel_size=4, strides=2, padding='same')(x)
29    x = keras.layers.BatchNormalization()(x)
30    x = keras.layers.LeakyReLU(alpha=0.2)(x)
31
32    x = keras.layers.Conv2D(256, kernel_size=4, strides=2, padding='same')(x)
33    x = keras.layers.BatchNormalization()(x)
34    x = keras.layers.LeakyReLU(alpha=0.2)(x)
35
36    x = keras.layers.Flatten()(x)
37    x = keras.layers.Dense(1)(x)
38    outputs = keras.layers.Activation('sigmoid')(x)
39
40    model = keras.Model(inputs=inputs, outputs=outputs, name=name)
41    return model
def build_discriminator(input_shape=(256, 256, 1), name='Discriminator'):
 9def build_discriminator(input_shape=(256, 256, 1), name="Discriminator"):
10    """
11    Builds a convolutional discriminator model for GANs.
12
13    Args:
14        input_shape (tuple): Shape of the input image (H, W, C).
15        name (str): Name of the Keras model.
16
17    Returns:
18        keras.Model: The compiled discriminator model.
19    """
20    inputs = keras.layers.Input(shape=input_shape)
21
22    x = keras.layers.Conv2D(32, kernel_size=4, strides=2, padding='same')(inputs)
23    x = keras.layers.LeakyReLU(alpha=0.2)(x)
24
25    x = keras.layers.Conv2D(64, kernel_size=4, strides=2, padding='same')(x)
26    x = keras.layers.BatchNormalization()(x)
27    x = keras.layers.LeakyReLU(alpha=0.2)(x)
28
29    x = keras.layers.Conv2D(128, kernel_size=4, strides=2, padding='same')(x)
30    x = keras.layers.BatchNormalization()(x)
31    x = keras.layers.LeakyReLU(alpha=0.2)(x)
32
33    x = keras.layers.Conv2D(256, kernel_size=4, strides=2, padding='same')(x)
34    x = keras.layers.BatchNormalization()(x)
35    x = keras.layers.LeakyReLU(alpha=0.2)(x)
36
37    x = keras.layers.Flatten()(x)
38    x = keras.layers.Dense(1)(x)
39    outputs = keras.layers.Activation('sigmoid')(x)
40
41    model = keras.Model(inputs=inputs, outputs=outputs, name=name)
42    return model

Builds a convolutional discriminator model for GANs.

Args: input_shape (tuple): Shape of the input image (H, W, C). name (str): Name of the Keras model.

Returns: keras.Model: The compiled discriminator model.