Мой условный GAN, кажется, испытывает крах режима - PullRequest
2 голосов
/ 18 апреля 2019

Я проектировал этот условный GAN в Tensorflow, используя набор данных celebA. Кажется, я испытываю то, что я предполагаю, что это крах режима.

Я попытался настроить дискриминатор, чтобы минимизировать расстояние Вассерштейна, но это, похоже, не помогло. Я также попытался уменьшить диапазон моего вектора состояния, думая, что, возможно, шум заглушался большими значениями в условии.

Вот как я объявляю свои функции стоимости

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]
...