def METHOD_NAME(self, RGB_inputs, RGBA_true):
    RGB_true = RGBA_true[:, :, :, 0:3]
    RGB_fake = self.generator(RGB_inputs)[:, :, :, 0:3]
    RGB_fake_true = tf.concat([RGB_fake, RGB_true], axis=0)
    batch_size = self._get_batch_size(RGB_inputs)
    y_true = self._build_discriminator_labels(batch_size)
    y_true = self._add_noise_to_labels(y_true)
    with tf.GradientTape() as tape:
        y_pred = self.discriminator(RGB_fake_true)
        discriminator_loss = self.compute_discriminator_loss(
            y_true, y_pred)
    gradients = tape.gradient(discriminator_loss,
                              self.discriminator.trainable_weights)
    self.optimizer_discriminator.apply_gradients(
        zip(gradients, self.discriminator.trainable_weights))
    return discriminator_loss