16.03.2021 Views

Advanced Deep Learning with Keras

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 5

input_shape = (image_size, image_size, 1)

batch_size = 64

lr = 2e-4

decay = 6e-8

train_steps = 40000

# build discriminator model

inputs = Input(shape=input_shape, name='discriminator_input')

discriminator = gan.discriminator(inputs, activation=None)

# [1] uses Adam, but discriminator converges

# easily with RMSprop

optimizer = RMSprop(lr=lr, decay=decay)

# LSGAN uses MSE loss [2]

discriminator.compile(loss='mse',

optimizer=optimizer,

metrics=['accuracy'])

discriminator.summary()

# build generator model

input_shape = (latent_size, )

inputs = Input(shape=input_shape, name='z_input')

generator = gan.generator(inputs, image_size)

generator.summary()

# build adversarial model = generator + discriminator

optimizer = RMSprop(lr=lr*0.5, decay=decay*0.5)

# freeze the weights of discriminator

# during adversarial training

discriminator.trainable = False

adversarial = Model(inputs,

discriminator(generator(inputs)),

name=model_name)

# LSGAN uses MSE loss [2]

adversarial.compile(loss='mse',

optimizer=optimizer,

metrics=['accuracy'])

adversarial.summary()

# train discriminator and adversarial networks

models = (generator, discriminator, adversarial)

params = (batch_size, latent_size, train_steps, model_name)

gan.train(models, x_train, params)

[ 145 ]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!