



__UpperCAmelCase          =       {
    0: '''0''',
    1: '''1''',
    2: '''2''',
    3: '''3''',
    4: '''4''',
    5: '''5''',
    6: '''6''',
    7: '''7''',
    8: '''8''',
    9: '''9''',
    10: '''a''',
    11: '''b''',
    12: '''c''',
    13: '''d''',
    14: '''e''',
    15: '''f''',
}
def 		UpperCamelCase	(   snake_case__       :    float	)	->     str:
   assert type(snake_case__	) in (int, float) and decimal == int(snake_case__	)
   UpperCamelCase    :  Dict							=	int(snake_case__	)
   UpperCamelCase    :  Optional[Any]							=	''
   UpperCamelCase    :  Optional[Any]							=	False
   if decimal < 0:
      UpperCamelCase    :  List[Any]							=	True
      decimal *= -1
   while decimal > 0:
      UpperCamelCase	,     UpperCamelCase    :  Dict							=	divmod(snake_case__       ,     16	)
      UpperCamelCase    :  Dict							=	values[remainder] + hexadecimal
   UpperCamelCase    :  str							=	'0x' + hexadecimal
   if negative:
      UpperCamelCase    :  List[Any]							=	'-' + hexadecimal
   return hexadecimal


if __name__ == "__main__":
    import doctest

    doctest.testmod()








import argparse

import torch

from transformers import MobileBertConfig, MobileBertForPreTraining, load_tf_weights_in_mobilebert
from transformers.utils import logging


logging.set_verbosity_info()
def 		UpperCamelCase	(   snake_case__       :    List[str]       ,     snake_case__       :    Union[str, Any]       ,     snake_case__       :    Union[str, Any]	)	->     int:
   # Initialise PyTorch model
   UpperCamelCase    :  Any							=	MobileBertConfig.from_json_file(snake_case__	)
   print(F"""Building PyTorch model from configuration: {config}"""	)
   UpperCamelCase    :  Tuple							=	MobileBertForPreTraining(snake_case__	)
   # Load weights from tf checkpoint
   UpperCamelCase    :  int							=	load_tf_weights_in_mobilebert(snake_case__       ,     snake_case__       ,     snake_case__	)
   # Save pytorch-model
   print(F"""Save PyTorch model to {pytorch_dump_path}"""	)
   torch.save(model.state_dict()       ,     snake_case__	)


if __name__ == "__main__":
    __UpperCAmelCase          =       argparse.ArgumentParser()
    # Required parameters
    parser.add_argument(
        '''--tf_checkpoint_path''', default=None, type=str, required=True, help='''Path to the TensorFlow checkpoint path.'''
    )
    parser.add_argument(
        '''--mobilebert_config_file''',
        default=None,
        type=str,
        required=True,
        help=(
            '''The config json file corresponding to the pre-trained MobileBERT model. \n'''
            '''This specifies the model architecture.'''
        ),
    )
    parser.add_argument(
        '''--pytorch_dump_path''', default=None, type=str, required=True, help='''Path to the output PyTorch model.'''
    )
    __UpperCAmelCase          =       parser.parse_args()
    convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.mobilebert_config_file, args.pytorch_dump_path)



