Incorrect loss calculation for the last batch in TFTrainer if dataloader_drop_last is False
## Environment info
<!-- You can run the command `transformers-cli env` and copy-and-paste its output below.
     Don't forget to fill out the missing fields in that output! -->
     
- `transformers` version: 3.1.0
- Platform: Linux-4.15.0-115-generic-x86_64-with-debian-buster-sid
- Python version: 3.6.7
- PyTorch version (GPU?): 1.5.1+cpu (False)
- Tensorflow version (GPU?): 2.2.0 (False)
- Using GPU in script?: No
- Using distributed or parallel set-up in script?: No


### Who can help
<!-- Your issue will be replied to more quickly if you can figure out the right person to tag with @
 If you know how to use git blame, that is the easiest way, otherwise, here is a rough guide of **who to tag**.
 Please tag fewer than 3 people.
 -->
 tensorflow: @jplu 


## Description

In [training_step()](https://github.com/huggingface/transformers/blob/master/src/transformers/trainer_tf.py#L595) in `trainer_tf.py`, we have

    scaled_loss = per_example_loss / self.total_train_batch_size

However, if `dataloader_drop_last=False`, the last bacth (before being distributed to replicas) won't necessary have `self.total_train_batch_size` examples. If we allow `dataloader_drop_last=False`, we need a way to dynamically calculate the actual number of examples in a global batch, and pass this information in some way to the replicas.

Thanks @chiapas! Indeed if the batch size becomes lower for the last step we divide by a wrong number. I will investigate this to better handle this edge case.<|||||>This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
