tf.keras.model call() 方法,是否可以将方法 call() 与标签一起使用?
tf.keras.model call() method, is it possible to use method call() with labels?
这个问题困扰了我一段时间:是否可以将 tf.keras.model
的方法 call()
与标签一起使用?从我所看到的情况来看,这是不合理的,但令我感到奇怪的是,您可以使用这种方法训练模型,但不能像 .fit()
方法那样将标签传递给它。
另外,这个问题是在看tensorflow文档中制作DCGAN的教程时出现的
您可以将张量列表传递给调用函数,这样您就可以传递标签。但是,这不符合 tensorflow/Keras 训练的逻辑。在您的示例中,基本训练程序是 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))
这个问题困扰了我一段时间:是否可以将 tf.keras.model
的方法 call()
与标签一起使用?从我所看到的情况来看,这是不合理的,但令我感到奇怪的是,您可以使用这种方法训练模型,但不能像 .fit()
方法那样将标签传递给它。
另外,这个问题是在看tensorflow文档中制作DCGAN的教程时出现的
您可以将张量列表传递给调用函数,这样您就可以传递标签。但是,这不符合 tensorflow/Keras 训练的逻辑。在您的示例中,基本训练程序是 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))