


import argparse

import torch

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


logging.set_verbosity_info()




def    snake_case_     (  snake_case			,							snake_case			,							snake_case     )  ->				Optional[int]:
       # Initialise PyTorch model
       lowercase__:   Tuple  			=   MobileBertConfig.from_json_file(__lowercase     )
       print(f'Building PyTorch model from configuration: {config}'     )
       lowercase__:   Tuple  			=   MobileBertForPreTraining(__lowercase     )
       # Load weights from tf checkpoint
       lowercase__:   Optional[Any]  			=   load_tf_weights_in_mobilebert(__lowercase			,							__lowercase			,							__lowercase     )
       # Save pytorch-model
       print(f'Save PyTorch model to {pytorch_dump_path}'     )
       torch.save(model.state_dict()			,							__lowercase     )


if __name__ == "__main__":
 __lowerCAmelCase		       =							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.'''
 )
 __lowerCAmelCase		       =							parser.parse_args()
 convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.mobilebert_config_file, args.pytorch_dump_path)




def        a_		(       __lowercase   :	str ) ->  int:
			_snake_case		=			hex_num.strip()
			if not hex_num:
						raise ValueError('No value was passed to the function' )

			_snake_case		=			hex_num[0] == '-'
			if is_negative:
						_snake_case		=			hex_num[1:]

			try:
						_snake_case		=			int(__lowercase       ,					16 )
			except ValueError:
						raise ValueError('Invalid value was passed to the function' )

			_snake_case		=			''
			while int_num > 0:
						_snake_case		=			str(int_num % 2 ) + bin_str
						int_num >>= 1

			return int(('-' + bin_str) if is_negative else bin_str )


if __name__ == "__main__":
			import doctest

			doctest.testmod()