# Create and train Styled CycleGAN with strategy.scope(): styled_cyclegan = StyledCycleGAN( Generator(), Generator(), Discriminator(), Discriminator(), lambda_cycle=10, lambda_style=1.0, lambda_content=0.5 ) styled_cyclegan.compile( m_gen_optimizer=tf.keras.optimizers.Adam(2e-4, beta_1=0.5), p_gen_optimizer=tf.keras.optimizers.Adam(2e-4, beta_1=0.5), m_disc_optimizer=tf.keras.optimizers.Adam(2e-4, beta_1=0.5), p_disc_optimizer=tf.keras.optimizers.Adam(2e-4, beta_1=0.5), gen_loss_fn=generator_loss, disc_loss_fn=discriminator_loss, cycle_loss_fn=calc_cycle_loss, identity_loss_fn=identity_loss ) # Build styled model _ = styled_cyclegan(sample_input, training=False) # Train styled model styled_cyclegan.fit( tf.data.Dataset.zip((monet_ds, photo_ds)), epochs=10 ) #styled_cyclegan.m_gen.save("models/style_high_dropout50.keras")
# Create and train Styled CycleGAN with a dropout of 0.3 or 0.7 with strategy.scope(): styled_cyclegan = StyledCycleGAN( Generator(dropout=.7), Generator(dropout=.7), Discriminator(), Discriminator(), lambda_cycle=10, lambda_style=1.0, lambda_content=0.5 ) styled_cyclegan.compile( m_gen_optimizer=tf.keras.optimizers.Adam(2e-4, beta_1=0.5), p_gen_optimizer=tf.keras.optimizers.Adam(2e-4, beta_1=0.5), m_disc_optimizer=tf.keras.optimizers.Adam(2e-4, beta_1=0.5), p_disc_optimizer=tf.keras.optimizers.Adam(2e-4, beta_1=0.5), gen_loss_fn=generator_loss, disc_loss_fn=discriminator_loss, cycle_loss_fn=calc_cycle_loss, identity_loss_fn=identity_loss ) # Build the styled model _ = styled_cyclegan(sample_input, training=False) # Train the styled model styled_cyclegan.fit( tf.data.Dataset.zip((monet_ds, photo_ds)), epochs=50 ) #styled_cyclegan.m_gen.save("models/style_high_dropout50.keras")
i = 1 for img in photo_ds: prediction = styled_cyclegan(img, training=False)[0].numpy() prediction = (prediction * 127.5 + 127.5).astype(np.uint8) im = Image.fromarray(prediction) im.save(path.join(IMG_PATH, str(i) + ".jpg")) i += 1shutil.make_archive(ZIP_NAME, 'zip', IMG_PATH)