




'''simple docstring'''




import importlib
import sys
from argparse import REMAINDER, ArgumentParser
from pathlib import Path

import torch_xla.distributed.xla_multiprocessing as xmp





def 	a_				( )				->		Optional[Any]:



       """simple docstring"""
       lowerCamelCase_				=ArgumentParser(
           description=(
               '''PyTorch TPU distributed training launch '''
               '''helper utility that will spawn up '''
               '''multiple distributed processes'''
           )  )

       # Optional arguments for the launch helper
       parser.add_argument('''--num_cores'''  ,			type=__snake_case  ,			default=1  ,			help='''Number of TPU cores to use (1 or 8).'''  )

       # positional
       parser.add_argument(
           '''training_script'''  ,			type=__snake_case  ,			help=(
               '''The full path to the single TPU training '''
               '''program/script to be launched in parallel, '''
               '''followed by all the arguments for the '''
               '''training script'''
           )  ,			)

       # rest from the training program
       parser.add_argument('''training_script_args'''  ,			nargs=__snake_case  )

       return parser.parse_args()





def 	a_				( )				->		Any:



       """simple docstring"""
       lowerCamelCase_				=parse_args()

       # Import training_script as a module.
       lowerCamelCase_				=Path(args.training_script  )
       sys.path.append(str(script_fpath.parent.resolve()  )  )
       lowerCamelCase_				=script_fpath.stem
       lowerCamelCase_				=importlib.import_module(__snake_case  )

       # Patch sys.argv
       lowerCamelCase_				=[args.training_script] + args.training_script_args + ['--tpu_num_cores', str(args.num_cores  )]
       xmp.spawn(mod._mp_fn  ,			args=()  ,			nprocs=args.num_cores  )


if __name__ == "__main__":
     main()











'''simple docstring'''




from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowercase__       : List[Any]         =       logging.get_logger(__name__)

lowercase__       : Optional[int]         =       {
    '''unc-nlp/lxmert-base-uncased''': '''https://huggingface.co/unc-nlp/lxmert-base-uncased/resolve/main/config.json''',
}


class 					SCREAMING_SNAKE_CASE       (a__				):
     lowerCAmelCase						     =			'''lxmert'''
     lowerCAmelCase						     =			{}


     def __init__(		self		,      _UpperCAmelCase=3_0522		,      _UpperCAmelCase=768		,      _UpperCAmelCase=12		,      _UpperCAmelCase=9500		,      _UpperCAmelCase=1600		,      _UpperCAmelCase=400		,      _UpperCAmelCase=3072		,      _UpperCAmelCase="gelu"		,      _UpperCAmelCase=0.1		,      _UpperCAmelCase=0.1		,      _UpperCAmelCase=512		,      _UpperCAmelCase=2		,      _UpperCAmelCase=0.02		,      _UpperCAmelCase=1e-1_2		,      _UpperCAmelCase=9		,      _UpperCAmelCase=5		,      _UpperCAmelCase=5		,      _UpperCAmelCase=2048		,      _UpperCAmelCase=4		,      _UpperCAmelCase=6.67		,      _UpperCAmelCase=True		,      _UpperCAmelCase=True		,      _UpperCAmelCase=True		,      _UpperCAmelCase=True		,      _UpperCAmelCase=True		,      _UpperCAmelCase=True		,      _UpperCAmelCase=True		,      **_UpperCAmelCase		,      ):

          '''simple docstring'''






          __A		:					Tuple						=			vocab_size
          __A		:					int						=			hidden_size
          __A		:					str						=			num_attention_heads
          __A		:					Tuple						=			hidden_act
          __A		:					int						=			intermediate_size
          __A		:					str						=			hidden_dropout_prob
          __A		:					Optional[int]						=			attention_probs_dropout_prob
          __A		:					Optional[Any]						=			max_position_embeddings
          __A		:					Tuple						=			type_vocab_size
          __A		:					Optional[int]						=			initializer_range
          __A		:					Any						=			layer_norm_eps
          __A		:					Optional[Any]						=			num_qa_labels
          __A		:					Optional[int]						=			num_object_labels
          __A		:					Any						=			num_attr_labels
          __A		:					Union[str, Any]						=			l_layers
          __A		:					Optional[int]						=			x_layers
          __A		:					List[Any]						=			r_layers
          __A		:					Tuple						=			visual_feat_dim
          __A		:					Tuple						=			visual_pos_dim
          __A		:					Optional[int]						=			visual_loss_normalizer
          __A		:					int						=			task_matched
          __A		:					List[Any]						=			task_mask_lm
          __A		:					Optional[Any]						=			task_obj_predict
          __A		:					str						=			task_qa
          __A		:					List[Any]						=			visual_obj_loss
          __A		:					Optional[Any]						=			visual_attr_loss
          __A		:					Union[str, Any]						=			visual_feat_loss
          __A		:					Union[str, Any]						=			{'vision': r_layers, 'cross_encoder': x_layers, 'language': l_layers}
          super().__init__(**_UpperCAmelCase)