TypeError: apply_gradients() missing 1 required positional argument: 'clip_norm'
# 🐛 Bug

## Information

Model I am using (TFBertModel):

Language I am using the model on (English):

Also I'm using `tensorflow==2.1.0` and `transformers==2.3.0`

The problem arises when using:
* [x] the official example scripts: (give details below)
I'm trying to use the `optimization_tf.create_optimizer` from the source code.

The tasks I am working on is:
* [x] my own task or dataset: (give details below)
Just a text classification task.

## To reproduce

Steps to reproduce the behavior:

1. Try to use the model the regular way
2. When running the model with "optimization_tf.create_optimizer"

## Environment info

```
/opt/conda/lib/python3.6/site-packages/tensorflow_core/python/keras/engine/training_eager.py in _process_single_batch(model, inputs, targets, output_loss_metrics, sample_weights, training)
    271                         loss_scale_optimizer.LossScaleOptimizer):
    272             grads = model.optimizer.get_unscaled_gradients(grads)
--> 273           model.optimizer.apply_gradients(zip(grads, trainable_weights))
    274       else:
    275         logging.warning('The list of trainable weights is empty. Make sure that'

TypeError: apply_gradients() missing 1 required positional argument: 'clip_norm'
```

## How I am able to run

On the class `AdamWeightDecay` and the method `apply_gradients` I just call the  supper function like this:

```
def apply_gradients(self, grads_and_vars, name=None):
    return super().apply_gradients(grads_and_vars)
```

but as you can see I'm not using the `clip_norm` as the source example uses.

Is there a  way to use the original source function as described in the source code?
Hi, indeed this optimizer `AdamWeightDecay` requires an additional argument for truncating the gradient norm.

It essentially feeds the `clip_norm` argument (which is the second required argument in `apply_gradients`) to [tf.clip_by_global_norm](https://www.tensorflow.org/api_docs/python/tf/clip_by_global_norm).

You can see a usage example in our [run_tf_ner.py example](https://github.com/huggingface/transformers/blob/master/examples/run_tf_ner.py#L203)<|||||>I wasn't able to implement this fix on my problem but I think this answer closes the issue, thank!<|||||>This problem occurs if you don't specify `clip_norm` when calling `apply_gradients`.
If using a custom training loop, the fix is easy :)
If you are using `keras.model.fit`, you can do it the following way:

```
from functools import partialmethod

AdamWeightDecay.apply_gradients = partialmethod(AdamWeightDecay.apply_gradients, clip_norm=1.0)
optimizer = create_optimizer(p.learning_rate, num_train_steps=total_steps, num_warmup_steps=warmup_steps)
```