



"""simple docstring"""





import argparse

import torch

from transformers import OpenAIGPTConfig, OpenAIGPTModel, load_tf_weights_in_openai_gpt
from transformers.utils import CONFIG_NAME, WEIGHTS_NAME, logging


logging.set_verbosity_info()
def 						__lowerCAmelCase    (		__UpperCamelCase   :      Union[str, Any]       ,			__UpperCamelCase   :      Optional[int]       ,			__UpperCamelCase   :      Optional[Any]     ):


						'''simple docstring'''






						if openai_config_file == "":
												snake_case_ :			List[Any]            =      OpenAIGPTConfig()
						else:
												snake_case_ :			Optional[int]            =      OpenAIGPTConfig.from_json_file(__UpperCamelCase     )
						snake_case_ :			List[Any]            =      OpenAIGPTModel(__UpperCamelCase     )

						# Load weights from numpy
						load_tf_weights_in_openai_gpt(__UpperCamelCase       ,			__UpperCamelCase       ,			__UpperCamelCase     )

						# Save pytorch-model
						snake_case_ :			List[Any]            =      pytorch_dump_folder_path + """/""" + WEIGHTS_NAME
						snake_case_ :			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							:       Dict          =       argparse.ArgumentParser()
					# Required parameters
					parser.add_argument(
					    '''--openai_checkpoint_folder_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(
					    '''--openai_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							:       Union[str, Any]          =       parser.parse_args()
					convert_openai_checkpoint_to_pytorch(
					    args.openai_checkpoint_folder_path, args.openai_config_file, args.pytorch_dump_folder_path
					)



"""simple docstring"""





from typing import TYPE_CHECKING

from ..utils import _LazyModule


UpperCamelCase_       :    Dict						      =			{
    '''config''': [
        '''EXTERNAL_DATA_FORMAT_SIZE_LIMIT''',
        '''OnnxConfig''',
        '''OnnxConfigWithPast''',
        '''OnnxSeq2SeqConfigWithPast''',
        '''PatchingSpec''',
    ],
    '''convert''': ['''export''', '''validate_model_outputs'''],
    '''features''': ['''FeaturesManager'''],
    '''utils''': ['''ParameterFormat''', '''compute_serialized_parameters_size'''],
}


if TYPE_CHECKING:
		from .config import (
		    EXTERNAL_DATA_FORMAT_SIZE_LIMIT,
		    OnnxConfig,
		    OnnxConfigWithPast,
		    OnnxSeqaSeqConfigWithPast,
		    PatchingSpec,
		)
		from .convert import export, validate_model_outputs
		from .features import FeaturesManager
		from .utils import ParameterFormat, compute_serialized_parameters_size

else:
		import sys

		UpperCamelCase_       :    List[Any]						      =			_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)




