在tensorflow GAN示例中,优化器和模型如何协同工作?

时间:2019-05-02 08:35:14

标签: python tensorflow machine-learning

我正在tensorflow网站上研究此示例。 https://www.tensorflow.org/alpha/tutorials/generative/dcgan

train_step方法中的问题:

def train_step(images):
    noise = tf.random.normal([BATCH_SIZE, noise_dim])

    with tf.GradientTape() as gen_tape, tf.GradientTape() as disc_tape:
      generated_images = generator(noise, training=True)

      real_output = discriminator(images, training=True)
      fake_output = discriminator(generated_images, training=True)

      gen_loss = generator_loss(fake_output)
      disc_loss = discriminator_loss(real_output, fake_output)

    gradients_of_generator = gen_tape.gradient(gen_loss, generator.trainable_variables)
    gradients_of_discriminator = disc_tape.gradient(disc_loss, discriminator.trainable_variables)

    generator_optimizer.apply_gradients(zip(gradients_of_generator, generator.trainable_variables))
    discriminator_optimizer.apply_gradients(zip(gradients_of_discriminator, discriminator.trainable_variables))
  • training = True 在这里是什么意思?我们只是传入输入张量,它输出张量。这里没有培训。
  • 在这里如何训练生成器和鉴别器模型?看来优化师是通过调用 apply_gradients 来完成这项工作的?但是它到底如何工作?在此代码中,我看不到优化器与生成器和鉴别器模型之间的关系。

0 个答案:

没有答案