[PYTHON] Belichtung des DCGAN-Modells für Cifar 10 mit Keras

Überblick

――Da ich keine Zeit habe, werde ich den Mechanismus von GAN vorerst weglassen. --Schreiben Sie die Einstellungen für Generator und Diskriminator --Miso verwendet LeakyReLu ** als Aktivierungsfunktion für Generator und Diskriminator.

Modellparameter

Generator

generator


def _build_generator(self) -> Model:
    start_pix_x = 4
    start_pix_y = 4
    kernel_ini = RandomNormal(mean=0.0, stddev=0.02)

    inputs = Input(shape=self.noise_shape)
    x = Dense(
        units=256*start_pix_x*start_pix_y,
        kernel_initializer=kernel_ini,
        bias_initializer='zeros')(inputs)
    x = LeakyReLU(alpha=0.2)(x)
    x = Reshape((start_pix_x, start_pix_y, 256))(x)
    x = Conv2DTranspose(
        filters=128,
        kernel_size=4,
        strides=2,
        padding='same',
        kernel_initializer=kernel_ini,
        bias_initializer='zeros')(x)
    x = LeakyReLU(alpha=0.2)(x)
    # x = BatchNormalization(axis=3)(x)
    x = Conv2DTranspose(
        filters=128,
        kernel_size=4,
        strides=2,
        padding='same',
        kernel_initializer=kernel_ini,
        bias_initializer='zeros')(x)
    x = LeakyReLU(alpha=0.2)(x)
    # x = BatchNormalization(axis=3)(x)
    x = Conv2DTranspose(
        filters=128,
        kernel_size=4,
        strides=2,
        padding='same',
        kernel_initializer=kernel_ini,
        bias_initializer='zeros')(x)
    x = LeakyReLU(alpha=0.2)(x)
    x = Conv2D(
        filters=3,
        kernel_size=3,
        padding='same',
        kernel_initializer=kernel_ini,
        bias_initializer='zeros')(x)

    y = Activation('tanh')(x)

    model = Model(inputs, y)
    if self.verbose:
        model.summary()

    return model

Discriminator

discriminator


def _build_discriminator(self) -> Model:
    kernel_ini = RandomNormal(mean=0.0, stddev=0.02)
    inputs = Input(shape=self.shape)
    x = GaussianNoise(stddev=0.05)(inputs)  # prevent d from overfitting.
    x = Conv2D(
        filters=64,
        kernel_size=3,
        padding='SAME',
        kernel_initializer=kernel_ini,
        bias_initializer='zeros')(x)
    x = LeakyReLU(alpha=0.2)(x)
    # x = Dropout(0.5)(x)
    x = Conv2D(
        filters=128,
        kernel_size=3,
        strides=2,
        padding='SAME',
        kernel_initializer=kernel_ini,
        bias_initializer='zeros')(x)
    x = LeakyReLU(alpha=0.2)(x)
    # x = Dropout(0.5)(x)
    # x = BatchNormalization(axis=3)(x)
    x = Conv2D(
        filters=128,
        kernel_size=3,
        strides=2,
        padding='SAME',
        kernel_initializer=kernel_ini,
        bias_initializer='zeros')(x)
    x = LeakyReLU(alpha=0.2)(x)
    # x = Dropout(0.5)(x)
    # x = BatchNormalization(axis=3)(x)
    x = Conv2D(
        filters=256,
        kernel_size=3,
        strides=2,
        padding='SAME',
        kernel_initializer=kernel_ini,
        bias_initializer='zeros')(x)
    x = LeakyReLU(alpha=0.2)(x)

    x = Flatten()(x)
    features = Dropout(0.4)(x)

    validity = Dense(1, activation='sigmoid')(features)

    model4d = Model(inputs, validity)
    model4g = Model(inputs, validity)
    if self.verbose:
        model4d.summary()

    return model4d, model4g

Ausgabeergebnis

Die Ausgabezeile entspricht der Klasse. DCGAN erzeugt nur ein Bild, aber das erzeugte Bild wird in das Trainingsmodell eingegeben, das aus dem Originalbild aufgebaut und gemäß der vorhergesagten Bezeichnung gekennzeichnet ist, und das Bild wird für jede Vorhersageklasse ausgegeben. Durch das Einfügen von LeakyReLU in den Generator habe ich das Gefühl, dass das Objekt des Objekts fester generiert werden kann. original2dcgan.png

Fazit

Ich habe es in Eile gemacht, also werde ich es zu einem späteren Zeitpunkt ausführlich schreiben.

Recommended Posts

Belichtung des DCGAN-Modells für Cifar 10 mit Keras
CIFAR-10-Tutorial mit Keras
Kalibrieren Sie das Modell mit PyCaret
Vergleichen Sie DCGAN und pix2pix mit Keras
Validieren Sie das Trainingsmodell mit Pylearn2
Lassen Sie uns die Hyperparameter des Modells mit scikit-learn abstimmen!
Fordern Sie die Bildklassifizierung mit TensorFlow2 + Keras CNN 1 heraus ~ Bewegen Sie sich vorerst ~
Suchen Sie nach Dateien mit der angegebenen Erweiterung
Achtung Seq2 Führen Sie das Dialogmodell mit Seq aus
Die dritte Nacht der Runde mit für
Die zweite Nacht der Runde mit für
Ich habe das VGG16-Modell mit Keras implementiert und versucht, CIFAR10 zu identifizieren
Ein Modell, das die Gitarre mit fast.ai identifiziert
Erste Schritte mit der japanischen Übersetzung des Keras Sequential-Modells
Verwenden Sie vorerst Logger mit Python
Ich habe vorerst mit Floydhub gespielt
Lösen des Lorenz 96-Modells mit Julia und Python
Laden Sie die TensorFlow-Modelldatei .pb mit readNetFromTensorflow ().
Erstellt ein Narrbild für das Modell der Untertitelgenerierung
Fügen Sie Attribute von Klassenobjekten mit einer for-Anweisung hinzu
Führen Sie es vorerst mit CentOS7 + Apache2.4 + Python3.6 aus
Überwachen Sie das Trainingsmodell mit TensorBord auf Jupyter Notebook
Verwenden Sie das Cognitive Took Kit (CNTK) mit dem Keras-Backend
Identifizieren Sie den Namen aus dem Blumenbild mit Keras (Tensorfluss)
[Boto3] Suchen Sie mit der List Users API nach Cognito-Benutzern
Informationen zur Steuerung von Motoren mit Python auf RaspberryPi
Aufzeichnung der ersten Herausforderung des maschinellen Lernens mit Keras
Lernen Sie Wasserstein GAN mit Keras-Modell und TensorFlow-Optimierung
[Für Anfänger] Quantifizieren Sie die Ähnlichkeit von Sätzen mit TF-IDF