生成对抗网络(GAN)与分布式模型的实现
1. 构建和训练 GAN 的最佳实践
在某些情况下,判别器可能会在区分真实和虚假图像方面表现得非常出色,从而无法为生成器提供足够的梯度反馈。为了解决这个问题,可以采用以下最佳实践来弱化判别器:
- 判别器的学习率应远高于生成器的学习率。
- 判别器使用梯度下降优化器,而生成器使用 Adam 优化器。
- 判别器采用 dropout 正则化,而生成器不使用。
- 与生成器相比,判别器的层数和神经元数量更少。
- 生成器的输出使用 tanh 激活函数,而判别器的输出使用 sigmoid 激活函数。
- 在 Keras 模型中,真实数据的标签使用 0.9 而不是 1.0,虚假数据的标签使用 0.1 而不是 0.0,以在标签中引入一些噪声。
2. 使用 TensorFlow 实现简单 GAN
可以按照以下步骤使用 TensorFlow 构建 GAN:
1. 添加定义网络的超参数 :
# graph hyperparameters
g_learning_rate = 0.00001
d_learning_rate = 0.01
n_x = 784 # number of pixels in the MNIST image
# number of hidden layers for generator and discriminator
g_n_layers = 3
d_n_layers = 1
# neurons in each hidden layer
超级会员免费看
订阅专栏 解锁全文
2841

被折叠的 条评论
为什么被折叠?



