通常在使用 TensorFlow 的 GAN 代码中,我们有以下形式:
_, D_loss_curr, _ = sess.run(
[D_solver, D_loss, clip_D],
feed_dict={X: X_mb, z: sample_z(mb_size, z_dim)}
)
_, G_loss_curr = sess.run(
[G_solver, G_loss],
feed_dict={z: sample_z(mb_size, z_dim)}
)
这可以看作是先训练判别器(D),然后训练生成器(G)。但是,如果我们执行以下操作会怎样:
_, D_loss_curr, _ ,_, G_loss_curr= sess.run(
[D_solver, D_loss, clip_D,G_solver, G_loss],
feed_dict={X: X_mb, z: sample_z(mb_size, z_dim)}
)
现在是否意味着 D 和 G 正在并行训练?还是和以前相比,G 现在已经“过时”了 D?