小编Uma*_*aja的帖子

在 Tensorflow 2.0 的自定义训练循环中应用回调

我正在使用 Tensorflow DCGAN 实施指南中提供的代码编写自定义训练循环。我想在训练循环中添加回调。在 Keras 中,我知道我们将它们作为参数传递给 'fit' 方法,但找不到有关如何在自定义训练循环中使用这些回调的资源。我正在从 Tensorflow 文档中添加自定义训练循环的代码:

# Notice the use of `tf.function`
# This annotation causes the function to be "compiled".
@tf.function
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))

def train(dataset, epochs):
  for epoch in range(epochs):
    start = time.time() …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow tensorflow2.0 gradienttape

11
推荐指数
3
解决办法
3621
查看次数

tf.keras.losses.categorical_crossentropy 返回数组还是单个值?

我正在使用自定义训练循环。返回的损失tf.keras.losses.categorical_crossentropy是我假设的数组(1,batch_size)。这是它应该返回的值还是单个值?

在后一种情况下,知道我可能做错了什么吗?

python keras tensorflow loss-function

5
推荐指数
1
解决办法
1099
查看次数