
"""simple docstring"""





import argparse
from argparse import Namespace

import torch
from torch import nn

from transformers import XGLMConfig, XGLMForCausalLM



def       lowerCamelCase__		(			__snake_case	)							->		str:


					"""simple docstring"""





					_UpperCamelCase							 =  [
					    '''decoder.version''',
					    '''decoder.output_projection.weight''',
					    '''_float_tensor''',
					    '''decoder.embed_positions._float_tensor''',
					]
					for k in ignore_keys:
										state_dict.pop(__snake_case,     __snake_case	)



def       lowerCamelCase__		(			__snake_case	)							->		List[str]:


					"""simple docstring"""





					_UpperCamelCase ,  _UpperCamelCase							 =  emb.weight.shape
					_UpperCamelCase							 =  nn.Linear(__snake_case,     __snake_case,     bias=__snake_case	)
					_UpperCamelCase							 =  emb.weight.data
					return lin_layer



def       lowerCamelCase__		(			__snake_case	)							->		str:


					"""simple docstring"""





					_UpperCamelCase							 =  torch.load(__snake_case,     map_location='''cpu'''	)
					_UpperCamelCase							 =  Namespace(**checkpoint['''cfg''']['''model''']	)
					_UpperCamelCase							 =  checkpoint['''model''']
					remove_ignore_keys_(__snake_case	)
					_UpperCamelCase							 =  state_dict['''decoder.embed_tokens.weight'''].shape[0]

					_UpperCamelCase							 =  {key.replace('''decoder''',     '''model'''	): val for key, val in state_dict.items()}

					_UpperCamelCase							 =  XGLMConfig(
					    vocab_size=__snake_case,     max_position_embeddings=args.max_target_positions,     num_layers=args.decoder_layers,     attention_heads=args.decoder_attention_heads,     ffn_dim=args.decoder_ffn_embed_dim,     d_model=args.decoder_embed_dim,     layerdrop=args.decoder_layerdrop,     dropout=args.dropout,     attention_dropout=args.attention_dropout,     activation_dropout=args.activation_dropout,     activation_function='''gelu''',     scale_embedding=not args.no_scale_embedding,     tie_word_embeddings=args.share_decoder_input_output_embed,     )

					_UpperCamelCase							 =  XGLMForCausalLM(__snake_case	)
					_UpperCamelCase							 =  model.load_state_dict(__snake_case,     strict=__snake_case	)
					print(__snake_case	)
					_UpperCamelCase							 =  make_linear_from_emb(model.model.embed_tokens	)

					return model


if __name__ == "__main__":
				_a														=		argparse.ArgumentParser()
				# Required parameters
				parser.add_argument("""fairseq_path""", type=str, help="""path to a model.pt on local filesystem.""")
				parser.add_argument("""pytorch_dump_folder_path""", default=None, type=str, help="""Path to the output PyTorch model.""")
				_a														=		parser.parse_args()
				_a														=		convert_fairseq_xglm_checkpoint_from_disk(args.fairseq_path)
				model.save_pretrained(args.pytorch_dump_folder_path)








"""simple docstring"""





def       lowerCamelCase__		(			__snake_case = 10_00	)							->		int:


					"""simple docstring"""





					_UpperCamelCase							 =  2**power
					_UpperCamelCase							 =  str(__snake_case	)
					_UpperCamelCase							 =  list(__snake_case	)
					_UpperCamelCase							 =  0

					for i in list_num:
										sum_of_num += int(__snake_case	)

					return sum_of_num


if __name__ == "__main__":
				_a														=		int(input("""Enter the power of 2: """).strip())
				print("""2 ^ """, power, """ = """, 2**power)
				_a														=		solution(power)
				print("""Sum of the digits is: """, result)






