def METHOD_NAME(self, RGB_inputs):
    batch_size = tf.shape(RGB_inputs)[0]
    y_misleading = tf.zeros((batch_size, 1))
    with tf.GradientTape() as tape:
        RGBE_preds = self.generator(RGB_inputs)
        y_pred = self.discriminator(RGBE_preds[..., 0:3])
        generator_loss = self.compute_discriminator_loss(
            y_misleading, y_pred)
    gradients = tape.gradient(generator_loss,
                              self.generator.trainable_weights)
    self.optimizer_generator.apply_gradients(
        zip(gradients, self.generator.trainable_weights))
    return generator_loss