def call(self, input_ids=None, attention_mask=None, token_type_ids=None, position_ids=None, head_mask=None, inputs_embeds=None, output_attentions=None, output_hidden_states=None, return_dict=None, training=False, **kwargs):
    inputs = input_processing(func=self.call, config=self.config, input_ids=input_ids, attention_mask=attention_mask, token_type_ids=token_type_ids, position_ids=position_ids, head_mask=head_mask, inputs_embeds=inputs_embeds, output_attentions=output_attentions, output_hidden_states=output_hidden_states, return_dict=return_dict, training=training, kwargs_call=kwargs)
    if ((inputs['input_ids'] is not None) and (inputs['inputs_embeds'] is not None)):
        raise ValueError('You cannot specify both input_ids and inputs_embeds at the same time')
    elif (inputs['input_ids'] is not None):
        input_shape = shape_list(inputs['input_ids'])
    elif (inputs['inputs_embeds'] is not None):
        input_shape = shape_list(inputs['inputs_embeds'])[:(- 1)]
    else:
        raise ValueError('You have to specify either input_ids or inputs_embeds')
    if (inputs['attention_mask'] is None):
        inputs['attention_mask'] = tf.fill(input_shape, 1)
    if (inputs['token_type_ids'] is None):
        inputs['token_type_ids'] = tf.fill(input_shape, 0)
    hidden_states = self.embeddings(inputs['input_ids'], inputs['position_ids'], inputs['token_type_ids'], inputs['inputs_embeds'], training=inputs['training'])
    extended_attention_mask = self.get_extended_attention_mask(inputs['attention_mask'], input_shape, hidden_states.dtype)
    inputs['head_mask'] = self.get_head_mask(inputs['head_mask'])
    if hasattr(self, 'embeddings_project'):
        hidden_states = self.embeddings_project(hidden_states, training=inputs['training'])
    hidden_states = self.encoder(hidden_states, extended_attention_mask, inputs['head_mask'], inputs['output_attentions'], inputs['output_hidden_states'], inputs['return_dict'], training=inputs['training'])
    return hidden_states
def call(self, input_ids=None, attention_mask=None, token_type_ids=None, position_ids=None, head_mask=None, inputs_embeds=None, output_attentions=None, output_hidden_states=None, return_dict=None, training=False, **kwargs):
    inputs = input_processing(func=self.call, config=self.config, input_ids=input_ids, attention_mask=attention_mask, token_type_ids=token_type_ids, position_ids=position_ids, head_mask=head_mask, inputs_embeds=inputs_embeds, output_attentions=output_attentions, output_hidden_states=output_hidden_states, return_dict=return_dict, training=training, kwargs_call=kwargs)
    if ((inputs['input_ids'] is not None) and (inputs['inputs_embeds'] is not None)):
        raise ValueError('You cannot specify both input_ids and inputs_embeds at the same time')
    elif (inputs['input_ids'] is not None):
        input_shape = shape_list(inputs['input_ids'])
    elif (inputs['inputs_embeds'] is not None):
        input_shape = shape_list(inputs['inputs_embeds'])[:(- 1)]
    else:
        raise ValueError('You have to specify either input_ids or inputs_embeds')
    if (inputs['attention_mask'] is None):
        inputs['attention_mask'] = tf.fill(input_shape, 1)
    if (inputs['token_type_ids'] is None):
        inputs['token_type_ids'] = tf.fill(input_shape, 0)
    hidden_states = self.embeddings(inputs['input_ids'], inputs['position_ids'], inputs['token_type_ids'], inputs['inputs_embeds'], training=inputs['training'])
    extended_attention_mask = self.get_extended_attention_mask(inputs['attention_mask'], input_shape, hidden_states.dtype)
    inputs['head_mask'] = self.get_head_mask(inputs['head_mask'])
    if hasattr(self, 'embeddings_project'):
        hidden_states = self.embeddings_project(hidden_states, training=inputs['training'])
    hidden_states = self.encoder(hidden_states, extended_attention_mask, inputs['head_mask'], inputs['output_attentions'], inputs['output_hidden_states'], inputs['return_dict'], training=inputs['training'])
    return hidden_states