Расчет потерь в dcgan - PullRequest
       72

Расчет потерь в dcgan

0 голосов
/ 11 июня 2019

Я пытаюсь понять код колба от Google . Не могли бы вы уточнить, почему они сравнивают real_output с массивом 1 с, а fake_output с массивом 0 с (простой черный)?

def discriminator_loss(real_output, fake_output):
    real_loss = cross_entropy(tf.ones_like(real_output), real_output)
    fake_loss = cross_entropy(tf.zeros_like(fake_output), fake_output)
    total_loss = real_loss + fake_loss
    return total_loss

def generator_loss(fake_output):
    return cross_entropy(tf.ones_like(fake_output), fake_output)

1 Ответ

0 голосов
/ 12 июня 2019

Напомним, что в GAN у вас есть генератор, который создает изображение.Дискриминатор - это другая сеть, которая пытается предсказать, поступило ли какое-либо конкретное изображение из генератора.Мы будем помечать изображения, созданные генератором (также называемые «подделками»), как 0, а реальные изображения - 1.Выходные данные дискриминаторов находятся в диапазоне [0, 1].

Массивы 0 и 1, которые вы видите, представляют собой только метки, назначенные сгенерированным или реальным изображениям.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...