



"""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        lowerCAmelCase_(   lowercase_     :							Optional[Any]						,   lowercase_     :							Any						,   lowercase_     :							List[str]							)	->       Optional[int]:
				# Initialise PyTorch model
				_lowerCamelCase        =				MobileBertConfig.from_json_file(lowercase_							)
				print(F"""Building PyTorch model from configuration: {config}"""							)
				_lowerCamelCase        =				MobileBertForPreTraining(lowercase_							)
				# Load weights from tf checkpoint
				_lowerCamelCase        =				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__":
			__SCREAMING_SNAKE_CASE  :						List[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.'''
			)
			__SCREAMING_SNAKE_CASE  :						Union[str, Any]    							=      parser.parse_args()
			convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.mobilebert_config_file, args.pytorch_dump_path)





"""simple docstring"""
import numpy as np



def        lowerCAmelCase_(   lowercase_     :							np.array							)	->       np.array:
				return 1 / (1 + np.exp(-vector							))



def        lowerCAmelCase_(   lowercase_     :							np.array							)	->       np.array:
				return vector * sigmoid(1.7_0_2 * vector							)


if __name__ == "__main__":
			import doctest

			doctest.testmod()
