For discriminator logits on real data d_real and on generated data d_fake:
Implement d_loss(d_real, d_fake), g_loss_minimax(d_fake) and g_loss_nonsat(d_fake) stably from logits (use ), plus g_grads(d_fake) returning the gradient of each generator loss with respect to the logits as a tuple (minimax_grad, nonsat_grad) (mean over the batch).