Fix learning rate problems in run_classifier.py
- Don't do warmup twice (in BertAdam and manually)
- Compute num_train_steps correctly for the case where gradient_accumulation_steps > 1. The current version might lead the the LR never leaving the warmup phase, depending on the value of gradient_accumulation_steps.

With these changes I get > 84% accuracy on MRPC, without them its around 77%.
Thanks @matej-svejda.
So this problem was actually introduced by adding NVIDIA's fp16 optimizer (`FusedAdam`) to the examples. This optimizer is a simple Adam which doesn't incorporate a learning rate schedule so we had to add a manual learning rate schedule in the examples.
So a better solution is to keep the `warmup_linear` function but to only modify the learning rates when the fp16 optimiser is used (i.e. updating the weights only if `args.fp16==True`).
Also it would  be great to update the other examples similarly.
Do you want to do that in your PR?
I can also do that if you don't have the time. <|||||>Sure, I can do that. Wanted to try out fp16 anyways :+1: <|||||>@thomwolf Something like this?<|||||>Thanks @matej-svejda, I was a bit late on this PR. I've made a small commit to make the notation more explicit (removed `t_total` which was mainly a duplicate of `num_train_steps` and renamed `num_train_steps` in a more explicit `num_train_optimization_steps`).
Merging this now