gpt4 book ai didi

python - GAN 生成完全相同的图像跨批处理只是因为种子分布,为什么?

转载 作者:行者123 更新时间:2023-12-05 06:08:32 25 4
gpt4 key购买 nike

我训练了一个 GAN 来重现类似 CIFAR10 的图像。最初我注意到生成器生成的一批图像中的所有图像看起来总是一样的,如下图所示: enter image description here

经过数小时的调试和与初学者学习资源教程 (https://machinelearningmastery.com/how-to-develop-a-generative-adversarial-network-for-a-cifar-10-small-object-photographs-from-scratch/) 的比较,我只在原始代码上添加了一个字母并且生成的图像开始看起来正常(每个批处理开始看起来彼此不同),如下图所示: enter image description here

代码上神奇的一个字符更改是进行以下更改:

改变自:

def generate_latent_points(self, n_samples):
return np.random.rand(n_samples, self.latent_dim)

到:

def generate_latent_points(self, n_samples):
return np.random.randn(n_samples, self.latent_dim)

希望这个非常微妙的细节可以帮助那些花费数小时为 GAN 训练过程绞尽脑汁的人。

np.random.rand[0, 1)

上给出均匀分布

np.random.randn 给出均值为 0 方差为 1 的单变量“正态”(高斯)分布

那么,为什么生成器的潜在种子分布的差异会表现得如此不同?

最佳答案

我能想到的可能原因很少:

  1. 这两者的分布差异有两个方面:1. rand 只给出正值,而 randn0 附近同时给出负值和正值; 2. rand 给出的值比 randn 大,原因很明显。更大的幅度可能会导致学习不稳定,因为 dL/dw(与 x 成正比)将大于 randn 的情况。

  2. 生成器的不成功学习不会对鉴别器区分真假图像提出挑战,因此鉴别器没有学习任何新东西。 (这是我对判别器在训练过程中的loss和acc的观察)

关于python - GAN 生成完全相同的图像跨批处理只是因为种子分布,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65122089/

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