
def a__    (       A_,     A_					):






  '''simple docstring'''





  if a < 0 or b < 0:
    raise ValueError("""the value of both inputs must be positive"""					)

  __magic_name__				     =       str(bin(snake_case__					)					)[2:]  # remove the leading "0b"
  __magic_name__				     =       str(bin(snake_case__					)					)[2:]  # remove the leading "0b"

  __magic_name__				     =       max(len(snake_case__					),     len(snake_case__					)					)

  return "0b" + "".join(
      str(int(char_a == """1""" and char_b == """1"""					)					)
      for char_a, char_b in zip(a_binary.zfill(snake_case__					),     b_binary.zfill(snake_case__					)					)					)


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)



