




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__  (     lowerCamelCase,			lowerCamelCase,			lowerCamelCase   ):
  # Initialise PyTorch model
  lowercase    :str      	=						MobileBertConfig.from_json_file(lowerCamelCase   )
  print(F"Building PyTorch model from configuration: {config}"   )
  lowercase    :int      	=						MobileBertForPreTraining(lowerCamelCase   )
  # Load weights from tf checkpoint
  lowercase    :Any      	=						load_tf_weights_in_mobilebert(lowerCamelCase,			lowerCamelCase,			lowerCamelCase   )
  # Save pytorch-model
  print(F"Save PyTorch model to {pytorch_dump_path}"   )
  torch.save(model.state_dict(),			lowerCamelCase   )


if __name__ == "__main__":
     _UpperCAmelCase	:						Union[str, Any]			=     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	:						str			=     parser.parse_args()
     convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.mobilebert_config_file, args.pytorch_dump_path)









from abc import ABC, abstractmethod
from argparse import ArgumentParser




class    __lowerCAmelCase       (							lowerCAmelCase):






       @staticmethod
       @abstractmethod
       def 					SCREAMING_SNAKE_CASE    (   _lowerCAmelCase:					ArgumentParser				):
         raise NotImplementedError()






       @abstractmethod
       def 					SCREAMING_SNAKE_CASE    (   self:					List[str]				):
         raise NotImplementedError()



