我一直在使用celebA数据集在Tensorflow中设计此条件GAN。我似乎正在经历模式崩溃。
我尝试调整鉴别器以最小化Wasserstein距离,但这似乎无济于事。我还尝试减小条件向量的范围,以为可能是条件中的较大值淹没了噪声。
这就是我声明成本函数的方式
self.fake_images = self.generator(self.z, self.y, self.phase)
real_result, real_logits = self.discriminator(self.images, self.y, self.phase)
fake_result, fake_logits = self.discriminator(self.fake_images, self.y, self.phase, reuse=True)
d_fake_loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels=tf.zeros_like(fake_result), logits=fake_logits))
d_real_loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels=tf.ones_like(real_result), logits=real_logits))
self.d_loss = d_real_loss + d_fake_loss
self.g_loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels=tf.ones_like(fake_result), logits=fake_logits))
t_vars = tf.trainable_variables()
self.d_vars = [var for var in t_vars if 'dis' in var.name]
self.g_vars = [var for var in t_vars if 'gen' in var.name]