【发布时间】:2021-06-24 16:56:23
【问题描述】:
我对 GAN 的理解是:
-
在训练您的生成器时,您需要先通过判别器进行反向传播,以便遵循链式规则。因此,我们在进行生成器损失计算时不能使用
.detach()。 -
在更新判别器时,由于您的生成器权重更新不会影响判别器权重更新,我们可以
.detach()您计算的生成器输出,我的理解告诉我,由于这个生成器不再是计算图的一部分,我们不再在 back prop 期间更新它。
所以当我们更新您的鉴别器损失时:
disc_loss.backward(retain_graph=True) 在每个小批量中,由于.detach() 函数调用,我们不必担心您的生成器会成为管道的一部分。
但是当我们在我们的生成器上工作时呢?是什么阻止了我们的模型根据生成器不断改变我们的鉴别器权重?毕竟这不是我们想要的吗?当被告知假样本是真实的时,鉴别器不应该学习。
为什么这样的模型首先会起作用
【问题讨论】:
标签: python pytorch generative-adversarial-network