通常在使用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?