我是新来的GAN。我正在学习建模GAN来生成图像,但是我并不真正理解给生成器的随机噪声到底是什么。它是从0到1的随机数吗?它的大小是多少?另外,随机噪声是否应该在每次生成器运行时都是恒定的?
任何帮助都将不胜感激。
发布于 2020-03-06 05:33:14
随机噪声是一个特征向量,对于每个图像都是唯一的
让我们考虑128的噪声向量
现在,只关注向量中的第一个条目,让我们考虑一下它是关于头部头发长度的
从训练图像模型中了解到,对于光头,值is=0,对于长发value=1,通过选择从0到1的随机数来确定毛发的数量。因此模型可以生成不同头发长度的人
这样,随机噪声中的所有128个条目将决定人脸的一个因素
这就是为什么每次选择随机噪声都会生成新的人物图像
如果使用随机噪声,那么模型将生成相同的图像
我希望您了解GAN是如何工作的。
发布于 2020-04-02 22:41:40
有一个jupyter笔记本驱动
教程
在github上(完全公开,这是我的github)。
(可用的解决方案
这里
)
噪声,或者更确切地说,潜在的随机变量可以按您喜欢的方式生成,例如:
# Generate latent random variable to feed to the generator, by drawing from a uniform distribution
z = np.random.uniform(-1., 1., size=[batch_size, noise_dim])然而,考虑生成器输入层中的激活函数并注意其敏感范围是有意义的。
生成器将此输入作为种子,从该潜在变量解码到源数据集域。所以很明显,相同的随机变量将导致完全相同的样本生成。
因此,你应该在训练的同时不断地绘制新的样本,并且不要保持噪声恒定。
发布于 2020-03-27 11:44:59
随机噪声向量分布表示潜在空间。这对GANs来说并不那么重要,但对于自动编码器来说更重要。通常,噪声是由正态分布产生的,但一些研究人员报告了使用球形分布的改进的训练结果(对不起,我手头没有参考资料)。噪波的范围取决于输入层。如果使用的是图像,则可能会在0到1或-1和1之间对输入进行规格化,因此可以对噪波向量使用相应的分布范围。典型的噪声向量可能是这样生成的:
noise = tf.random.normal([BATCH_SIZE, noise_dim])where批处理
_
大小是训练批次的大小(16,32,64,128...)和噪声
_
dim是噪声向量的大小,这取决于您的特征空间(对于中等分辨率的图像,我通常使用1024 )。
https://stackoverflow.com/questions/60553795
复制相似问题