code: def lossfn(real_input, fake_input, compress, hparams, lsgan, name):
    
    eps = 1e-12
    with tf.variable_scope(name):
      d1 = discriminator(real_input, compress, hparams, "discriminator")
      d2 = discriminator(fake_input, compress, hparams, "discriminator",
                         reuse=True)
      if lsgan:
        dloss = tf.reduce_mean(
            tf.squared_difference(d1, 0.9)) + tf.reduce_mean(tf.square(d2))
        gloss = tf.reduce_mean(tf.squared_difference(d2, 0.9))
        loss = (dloss + gloss)/2
      else:  # cross_entropy
        dloss = -tf.reduce_mean(
            tf.log(d1 + eps)) - tf.reduce_mean(tf.log1p(eps - d2))
        gloss = -tf.reduce_mean(tf.log(d2 + eps))
        loss = (dloss + gloss)/2
      return loss
docs: Loss function.