



import argparse

import torch

from transformers import LxmertConfig, LxmertForPreTraining, load_tf_weights_in_lxmert
from transformers.utils import logging


logging.set_verbosity_info()



def 	__a					(   lowerCAmelCase_       : str      ,lowerCAmelCase_       : Optional[int]      ,lowerCAmelCase_       : Optional[Any]    )				->			Optional[int]:






						'''simple docstring'''



						UpperCAmelCase_=       LxmertConfig.from_json_file(lowerCAmelCase_    )
						print(F"""Building PyTorch model from configuration: {config}"""    )
						UpperCAmelCase_=       LxmertForPreTraining(lowerCAmelCase_    )

						# Load weights from tf checkpoint
						load_tf_weights_in_lxmert(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       =						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(
	    '''--config_file''',
	    default=None,
	    type=str,
	    required=True,
	    help='''The config json file corresponding to the pre-trained model. \nThis specifies the model architecture.''',
	)
	parser.add_argument(
	    '''--pytorch_dump_path''', default=None, type=str, required=True, help='''Path to the output PyTorch model.'''
	)
	__A       =						parser.parse_args()
	convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.config_file, args.pytorch_dump_path)









import warnings
from functools import wraps
from typing import Callable



def 	__a					(   lowerCAmelCase_       : Callable    )				->			Callable:






						'''simple docstring'''



						@wraps(lowerCAmelCase_    )
						def _inner_fn(*lowerCAmelCase_       : List[Any]      ,**lowerCAmelCase_       : Tuple    ):
												warnings.warn(
												    (F"""'{fn.__name__}' is experimental and might be subject to breaking changes in the future.""")      ,lowerCAmelCase_      ,)
												return fn(*lowerCAmelCase_      ,**lowerCAmelCase_    )

						return _inner_fn




