


'''simple docstring'''

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


lowerCamelCase							:     List[str]								=			logging.get_logger(__name__)

lowerCamelCase							:     Any								=			{
    'openbmb/cpm-ant-10b': 'https://huggingface.co/openbmb/cpm-ant-10b/blob/main/config.json'
    # See all CPMAnt models at https://huggingface.co/models?filter=cpmant
}
class 						__lowerCAmelCase		(lowercase_  ):





      '''simple docstring'''






      lowerCAmelCase__      :  Optional[int]						      =							"""cpmant"""



      def __init__(self					:					Tuple     ,		UpperCamelCase					:					int = 30720     ,		UpperCamelCase					:					int = 4096     ,		UpperCamelCase					:					int = 32     ,		UpperCamelCase					:					int = 128     ,		UpperCamelCase					:					int = 10240     ,		UpperCamelCase					:					int = 48     ,		UpperCamelCase					:					int = 0.0     ,		UpperCamelCase					:					int = 512     ,		UpperCamelCase					:					int = 2048     ,		UpperCamelCase					:					int = 1E-6     ,		UpperCamelCase					:					float = 1.0     ,		UpperCamelCase					:					int = 32     ,		UpperCamelCase					:					int = 32     ,		UpperCamelCase					:					int = 32     ,		UpperCamelCase					:					bool = True     ,		**UpperCamelCase					:					int     ,		):

             '''simple docstring'''







             super().__init__(**UpperCamelCase				)
             lowercase__       =				prompt_types
             lowercase__       =				prompt_length
             lowercase__       =				segment_types
             lowercase__       =				hidden_size
             lowercase__       =				num_attention_heads
             lowercase__       =				dim_head
             lowercase__       =				dim_ff
             lowercase__       =				num_hidden_layers
             lowercase__       =				position_bias_num_buckets
             lowercase__       =				position_bias_max_distance
             lowercase__       =				dropout_p
             lowercase__       =				eps
             lowercase__       =				use_cache
             lowercase__       =				vocab_size
             lowercase__       =				init_std








'''simple docstring'''

import argparse

import torch

from transformers import ElectraConfig, ElectraForMaskedLM, ElectraForPreTraining, load_tf_weights_in_electra
from transformers.utils import logging


logging.set_verbosity_info()

def _SCREAMING_SNAKE_CASE   (A						,				A						,				A						,				A ) -> Dict:






       """simple docstring"""







       lowercase__       =				ElectraConfig.from_json_file(A )
       print(f"Building PyTorch model from configuration: {config}" )

       if discriminator_or_generator == "discriminator":
              lowercase__       =				ElectraForPreTraining(A )
       elif discriminator_or_generator == "generator":
              lowercase__       =				ElectraForMaskedLM(A )
       else:
              raise ValueError('''The discriminator_or_generator argument should be either \'discriminator\' or \'generator\'''' )

       # Load weights from tf checkpoint
       load_tf_weights_in_electra(
           A						,				A						,				A						,				discriminator_or_generator=A )

       # Save pytorch-model
       print(f"Save PyTorch model to {pytorch_dump_path}" )
       torch.save(model.state_dict()						,				A )


if __name__ == "__main__":
 lowerCamelCase							:     Tuple								=			argparse.ArgumentParser()
 # Required parameters
 parser.add_argument(
     '--tf_checkpoint_path', default=None, type=str, required=True, help='Path to the TensorFlow checkpoint path.'
 )
 parser.add_argument(
     '--config_file',
     default=None,
     type=str,
     required=True,
     help='The config json file corresponding to the pre-trained model. \nThis specifies the model architecture.',
 )
 parser.add_argument(
     '--pytorch_dump_path', default=None, type=str, required=True, help='Path to the output PyTorch model.'
 )
 parser.add_argument(
     '--discriminator_or_generator',
     default=None,
     type=str,
     required=True,
     help=(
         'Whether to export the generator or the discriminator. Should be a string, either \'discriminator\' or '
         '\'generator\'.'
     ),
 )
 lowerCamelCase							:     Optional[int]								=			parser.parse_args()
 convert_tf_checkpoint_to_pytorch(
     args.tf_checkpoint_path, args.config_file, args.pytorch_dump_path, args.discriminator_or_generator
 )




