
"""simple docstring"""




import argparse

import torch

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


logging.set_verbosity_info()



def 							a__ (				lowerCAmelCase	:       str       ,    lowerCAmelCase	:       Optional[Any]       ,    lowerCAmelCase	:       Dict		):






     '''simple docstring'''
     # Initialise PyTorch model
     UpperCAmelCase__							: Tuple 							=						MobileBertConfig.from_json_file(lowerCAmelCase		)
     print(F"Building PyTorch model from configuration: {config}"		)
     UpperCAmelCase__							: str 							=						MobileBertForPreTraining(lowerCAmelCase		)
     # Load weights from tf checkpoint
     UpperCAmelCase__							: Optional[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__":
    A__      :	List[str]          =    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."""
    )
    A__      :	List[str]          =    parser.parse_args()
    convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.mobilebert_config_file, args.pytorch_dump_path)





"""simple docstring"""




def 							a__ (				lowerCAmelCase	:       int		):






     '''simple docstring'''
     if a < 0:
          raise ValueError("Input value must be a positive integer"		)
     elif isinstance(lowerCAmelCase       ,    lowerCAmelCase		):
          raise TypeError("Input value must be a 'int' type"		)
     return bin(lowerCAmelCase		).count("1"		)


if __name__ == "__main__":
    import doctest

    doctest.testmod()



