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

2024-04-28 20:27:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在tensorflow网站上学习这个例子。 https://www.tensorflow.org/alpha/tutorials/generative/dcgan

我在列车步骤法中的问题:

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是什么意思?我们只是传入输入张量,它输出一个张量。这里没有培训
  • 发电机和鉴别器模型是如何在这里接受培训的?似乎优化人员正在通过调用应用梯度来完成这项工作?但它究竟是如何工作的呢?在这段代码中,我看不到优化器与生成器和鉴别器模型之间的关系

Tags: oftrueoutputtrainingvariablesgeneratorgendisc