




import argparse

import torch

from transformers import GPTaConfig, GPTaModel, load_tf_weights_in_gpta
from transformers.utils import CONFIG_NAME, WEIGHTS_NAME, logging


logging.set_verbosity_info()




def 							_UpperCAmelCase  (UpperCamelCase_ : Optional[Any]      ,    UpperCamelCase_ : int      ,    UpperCamelCase_ : Optional[int]       ):
				'''simple docstring'''
				# Construct model
				if gpta_config_file == "":
								_lowerCAmelCase    :    str										=      GPTaConfig()
				else:
								_lowerCAmelCase    :    List[Any]										=      GPTaConfig.from_json_file(UpperCamelCase_       )
				_lowerCAmelCase    :    Tuple										=      GPTaModel(UpperCamelCase_       )

				# Load weights from numpy
				load_tf_weights_in_gpta(UpperCamelCase_      ,    UpperCamelCase_      ,    UpperCamelCase_       )

				# Save pytorch-model
				_lowerCAmelCase    :    Any										=      pytorch_dump_folder_path + """/""" + WEIGHTS_NAME
				_lowerCAmelCase    :    Tuple										=      pytorch_dump_folder_path + """/""" + CONFIG_NAME
				print(F"Save PyTorch model to {pytorch_weights_dump_path}"       )
				torch.save(model.state_dict()      ,    UpperCamelCase_       )
				print(F"Save configuration file to {pytorch_config_dump_path}"       )
				with open(UpperCamelCase_      ,    """w"""      ,    encoding="""utf-8"""       ) as f:
								f.write(config.to_json_string()       )


if __name__ == "__main__":
	_lowerCamelCase      :  str    						=						argparse.ArgumentParser()
	# Required parameters
	parser.add_argument(
	    "--gpt2_checkpoint_path", default=None, type=str, required=True, help="Path to the TensorFlow checkpoint path."
	)
	parser.add_argument(
	    "--pytorch_dump_folder_path", default=None, type=str, required=True, help="Path to the output PyTorch model."
	)
	parser.add_argument(
	    "--gpt2_config_file",
	    default="",
	    type=str,
	    help=(
	        "An optional config json file corresponding to the pre-trained OpenAI model. \n"
	        "This specifies the model architecture."
	    ),
	)
	_lowerCamelCase      :  Any    						=						parser.parse_args()
	convert_gpta_checkpoint_to_pytorch(args.gpta_checkpoint_path, args.gpta_config_file, args.pytorch_dump_folder_path)







def 							_UpperCAmelCase  (UpperCamelCase_ : int       ):
				'''simple docstring'''
				_lowerCAmelCase    :    int										=      n ** (1 / 3)
				return (val * val * val) == n


if __name__ == "__main__":
	print(perfect_cube(2_7))
	print(perfect_cube(4))

