gpt4 book ai didi

python-3.x - Wasserstein GAN 批评者训练歧义

转载 作者:行者123 更新时间:2023-11-30 09:45:13 25 4
gpt4 key购买 nike

我正在运行基于 DCGAN 的 GAN,并正在尝试 WGAN,但对如何训练 WGAN 有点困惑。

在官方Wasserstein GAN PyTorch implementation ,据说每次生成器训练时,鉴别器/批评器都会被训练 Diters(通常为 5 次)。

这是否意味着批评者/鉴别器在 Diters 批处理整个数据集 Diters 次上进行训练?如果我没记错的话,官方的实现表明鉴别器/批评器是在整个数据集 Diters 次上进行训练的,但是 WGAN 的其他实现(在 PyTorch 和 TensorFlow 等中) )做相反的事情。

哪个是正确的? The WGAN paper (至少对我来说),表明它是 Diters 批处理。对整个数据集的训练显然要慢几个数量级。

提前致谢!

最佳答案

正确的做法是将迭代视为一个批处理。原文paper ,对于批评者/鉴别器的每次迭代,他们都会对一批大小为 m 的真实数据和一批大小为 m 的先前样本 p(z ) 来工作。在对批评者进行 Diters 迭代训练后,他们训练生成器,该生成器也通过对 p(z) 的一批先前样本进行采样来开始。因此,每次迭代都是针对一个批处理进行的。

official implementation这也正在发生。可能令人困惑的是,他们使用变量名 niter 来表示训练模型的纪元数。尽管他们使用不同的方案在 162 行设置 Diters -166:

# train the discriminator Diters times
if gen_iterations < 25 or gen_iterations % 500 == 0:
Diters = 100
else:
Diters = opt.Diters

正如论文中所述,他们正在对 Diters 批处理的批评家进行训练。

关于python-3.x - Wasserstein GAN 批评者训练歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53401431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com