

'''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						:     Optional[int]							, _UpperCamelCase						:     Optional[Any]							, _UpperCamelCase						:     Optional[int]				)      ->			Optional[Any]:
     """simple docstring"""




     if openai_config_file == "":
          _SCREAMING_SNAKE_CASE							    =OpenAIGPTConfig()
     else:
          _SCREAMING_SNAKE_CASE							    =OpenAIGPTConfig.from_json_file(_UpperCamelCase				)
     _SCREAMING_SNAKE_CASE							    =OpenAIGPTModel(_UpperCamelCase				)

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

     # Save pytorch-model
     _SCREAMING_SNAKE_CASE							    =pytorch_dump_folder_path + '/' + WEIGHTS_NAME
     _SCREAMING_SNAKE_CASE							    =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 :      str					 =     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 ...configuration_utils import PretrainedConfig
from ...utils import logging


lowercase__		:				Tuple          =	logging.get_logger(__name__)

lowercase__		:				Any          =	{
    """facebook/dpr-ctx_encoder-single-nq-base""": (
        """https://huggingface.co/facebook/dpr-ctx_encoder-single-nq-base/resolve/main/config.json"""
    ),
    """facebook/dpr-question_encoder-single-nq-base""": (
        """https://huggingface.co/facebook/dpr-question_encoder-single-nq-base/resolve/main/config.json"""
    ),
    """facebook/dpr-reader-single-nq-base""": (
        """https://huggingface.co/facebook/dpr-reader-single-nq-base/resolve/main/config.json"""
    ),
    """facebook/dpr-ctx_encoder-multiset-base""": (
        """https://huggingface.co/facebook/dpr-ctx_encoder-multiset-base/resolve/main/config.json"""
    ),
    """facebook/dpr-question_encoder-multiset-base""": (
        """https://huggingface.co/facebook/dpr-question_encoder-multiset-base/resolve/main/config.json"""
    ),
    """facebook/dpr-reader-multiset-base""": (
        """https://huggingface.co/facebook/dpr-reader-multiset-base/resolve/main/config.json"""
    ),
}







class       UpperCamelCase__   (	lowercase_  ):




      """simple docstring"""




      _SCREAMING_SNAKE_CASE  				=     """dpr"""



      def __init__(      self				:      List[Any]    ,			SCREAMING_SNAKE_CASE_				:      Tuple=3_0_5_2_2    ,			SCREAMING_SNAKE_CASE_				:      Any=7_6_8    ,			SCREAMING_SNAKE_CASE_				:      Dict=1_2    ,			SCREAMING_SNAKE_CASE_				:      List[str]=1_2    ,			SCREAMING_SNAKE_CASE_				:      int=3_0_7_2    ,			SCREAMING_SNAKE_CASE_				:      List[Any]="gelu"    ,			SCREAMING_SNAKE_CASE_				:      int=0.1    ,			SCREAMING_SNAKE_CASE_				:      int=0.1    ,			SCREAMING_SNAKE_CASE_				:      Union[str, Any]=5_1_2    ,			SCREAMING_SNAKE_CASE_				:      Optional[int]=2    ,			SCREAMING_SNAKE_CASE_				:      Optional[int]=0.02    ,			SCREAMING_SNAKE_CASE_				:      List[str]=1E-12    ,			SCREAMING_SNAKE_CASE_				:      List[Any]=0    ,			SCREAMING_SNAKE_CASE_				:      Optional[int]="absolute"    ,			SCREAMING_SNAKE_CASE_				:      int = 0    ,			**SCREAMING_SNAKE_CASE_				:      Optional[int]    ,			):
        super().__init__(pad_token_id=SCREAMING_SNAKE_CASE_    ,			**SCREAMING_SNAKE_CASE_       )

        lowerCAmelCase_   :				Optional[int]								= vocab_size
        lowerCAmelCase_   :				Tuple								= hidden_size
        lowerCAmelCase_   :				int								= num_hidden_layers
        lowerCAmelCase_   :				str								= num_attention_heads
        lowerCAmelCase_   :				Any								= hidden_act
        lowerCAmelCase_   :				List[str]								= intermediate_size
        lowerCAmelCase_   :				int								= hidden_dropout_prob
        lowerCAmelCase_   :				Union[str, Any]								= attention_probs_dropout_prob
        lowerCAmelCase_   :				Tuple								= max_position_embeddings
        lowerCAmelCase_   :				List[str]								= type_vocab_size
        lowerCAmelCase_   :				str								= initializer_range
        lowerCAmelCase_   :				str								= layer_norm_eps
        lowerCAmelCase_   :				List[str]								= projection_dim
        lowerCAmelCase_   :				List[str]								= position_embedding_type





