2

我正在研究生成对抗网络(GAN)。在训练的每一步,我都会调用一个方法,该方法generate_noise返回一些随机噪声的张量。

# Generates noise of normal distribution
def generate_noise( shape : tuple ):
    noise = tf.random_normal( shape )
    return noise

当我调用此方法时,我会收到一个随机噪声张量,该张量会提供给生成器网络。我的问题是:

如果生成器每次(每一步)都接收随机输入,它如何优化自身以创建有意义的图像(输出)?

那么我是否应该在每一步都使噪音保持不变。意思是,每一步只传递一个噪声张量。

# Generates noise of normal distribution
noise = tf.random_normal( shape )
def generate_noise( ):
    return noise

我是否应该使噪声恒定,以便生成器网络必须处理一个输入,从而可以创建有意义的输出?

参考了很多关于 GAN 的视频和博客。我找不到噪音是否保持不变。任何帮助表示赞赏。

4

2 回答 2

1

噪音不是恒定的。噪声实际上可以看作是数据的潜在表示,生成器试图以隐式方式学习。“噪声”向量中的每个维度都可以认为是赋予生成器的一个特征,例如“微笑”——这个特征中的值越高,生成的图像就会有更多的“微笑”。

于 2019-02-19T23:15:47.997 回答
1

不,在训练过程中噪音不应该是恒定的。对于给定的潜在噪声向量,GAN 只能生成单个图像。如果保持噪声不变,GAN 只能生成一张图像

您希望噪声保持不变的唯一情况是,如果您想可视化GAN 在单个实例的训练过程中的进展情况。

例如下面的图像就是这样产生的。请注意,在每个点都会生成相同的图像。这是通过在训练期间的不同阶段将相同的输入噪声向量传递给 GAN 来完成的。

于 2019-02-19T23:28:17.693 回答