我正在尝试对一些数据使用this version of the DCGAN code(在Tensorflow中实现)。我遇到了一个问题,鉴别器变得太强,太快,发电机无法学习任何东西。
现在有一些技巧通常被推荐用于解决GANs的问题:
批量标准化(在DCGANs代码中已经存在)
启动发电机。
我做了后者的一些版本,每1个鉴别器允许10次生成器迭代(不仅在开始时,而且在整个培训过程中),这就是它的外观:
<> P>在这种情况下添加更多的发电机迭代只会减慢不可避免的鉴别器增长太强和抑制生成器学习。因此,我想就是否有其他方法可以帮助解决一个太强的歧视者的问题征求意见?
总结本主题-一般建议如下:
但是,在我的例子中,问题是数据缩放:我已经将输入数据的格式从initial.jpg更改为.npy,并且在途中丢失了重缩放。请注意this DCGAN-tensorflow code将输入数据重新调整为[-1,1]范围,并且模型已调整为使用此范围。
我认为有几种方法可以减少鉴别器:
在鉴别器功能中尝试漏泄和退出:
def leaky_relu(x, alpha, name="leaky_relu"): return tf.maximum(x, alpha * x , name=name)
以下是整个定义:
在鉴别器丢失中添加标签平滑以防止鉴别器变强。根据损耗性能增加平滑值。
d_loss_real = tf.reduce_mean( tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_real, labels=tf.ones_like(d_model_real)*(1.0 - smooth)))
相关问题 更多 >
编程相关推荐