计算dcgan中的损耗

时间:2019-06-11 19:15:56

标签: python tensorflow

我正试图了解Google's colab code。您能否弄清为什么他们将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 :(得分:0)

回顾一下,在GAN中,您有一个生成图像的生成器。鉴别器是另一个试图预测是否有特定图像来自生成器的网络。我们将生成器创建的图像(也称为“伪造品”)标记为0,并将真实图像标记为1。鉴别器的输出范围为[0, 1]

  

您看到的0和1的数组仅仅是分配给生成的图像或真实图像的标签。

您应该注意,生成器仅在“伪”图像上进行训练,生成器无法在真实图像上进行训练,因为它没有产生图像。您还应该注意,生成器已经交换了鉴别器的标签,它试图实现与鉴别器相反的目标。