WGAN 太慢了有哪些方法可以加快速度?

数据挖掘 训练
2021-10-15 07:24:19

我已经实现了一个 vanilla GAN,它很快就给出了很好的结果,但是它有很多模式崩溃问题,因此我了解了 WGAN,它应该可以解决这个问题,实际上他们声称他们从未遇到过模式崩溃问题,这很好。我的主要问题是 WGAN 需要多慢才能收敛到好的结果。使用第 10 纪元的香草 GAN,我得到了好看的几代人,使用 WGAN,我仍然看到第 50 纪元的噪声图像!除了提高学习率,我还能做什么?该网络是经过修改的更小的 DCGAN,其输出层比原始网络少 1 个。因此,我没有额外的 1024 输出层停在 512。我知道从我所做的所有研究中 WGAN 会很慢,但我除了这么慢之外没有。有人能给我指出如何更好地优化 WGAN 的正确方向吗?

我已经用谷歌搜索了,但大多数结果只是模糊的评论链或协议存在速度问题,没有进一步的线索来说明你接下来应该做什么来解决这个问题。

1个回答

如果您使用带有梯度惩罚的 WGAN,我认为您使用的框架是有限的因素,因为计算所有梯度需要时间。

如果您使用带有梯度惩罚的 WGAN,那么获得更快结果的一种方法是省略梯度惩罚,只进行原始WGAN 论文中提到的权重裁剪。但是在他们展示的改进的 WGAN(带有梯度惩罚)中要小心,权重裁剪会导致判别器出现偏差。

但就我在 GAN 方面的经验而言,WGAN GP 给出了总体上最好的结果,我会花时间训练它。

但是您的训练程序也可能是问题的一部分,因为许多参考实现都试图获得生成器更新的速率,例如 1 个生成器更新用于 10-100 个鉴别器更新(在某些情况下完全有意义)。因此,有几个因素会导致训练缓慢,但最重要的是梯度惩罚的计算成本很高。