2

我一直在使用 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]
4

0 回答 0