

"""simple docstring"""






import argparse

from transformers import BigBirdConfig, BigBirdForPreTraining, BigBirdForQuestionAnswering, load_tf_weights_in_big_bird
from transformers.utils import logging


logging.set_verbosity_info()





def 	lowercase      (   __UpperCamelCase      ,   __UpperCamelCase      ,   __UpperCamelCase      ,   __UpperCamelCase						) ->      Tuple:
 # Initialise PyTorch model
 __magic_name__     =      BigBirdConfig.from_json_file(__UpperCamelCase						)
 print(f'''Building PyTorch model from configuration: {config}'''						)

 if is_trivia_qa:
  __magic_name__     =      BigBirdForQuestionAnswering(__UpperCamelCase						)
 else:
  __magic_name__     =      BigBirdForPreTraining(__UpperCamelCase						)

 # Load weights from tf checkpoint
 load_tf_weights_in_big_bird(__UpperCamelCase      ,   __UpperCamelCase      ,   is_trivia_qa=__UpperCamelCase						)

 # Save pytorch-model
 print(f'''Save PyTorch model to {pytorch_dump_path}'''						)
 model.save_pretrained(__UpperCamelCase						)


if __name__ == "__main__":
 __lowerCamelCase										=		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(
     "--big_bird_config_file",
     default=None,
     type=str,
     required=True,
     help=(
         "The config json file corresponding to the pre-trained BERT model. \n"
         "This 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(
     "--is_trivia_qa", action="store_true", help="Whether to convert a model with a trivia_qa head."
 )
 __lowerCamelCase										=		parser.parse_args()
 convert_tf_checkpoint_to_pytorch(
     args.tf_checkpoint_path, args.big_bird_config_file, args.pytorch_dump_path, args.is_trivia_qa
 )








"""simple docstring"""






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


__lowerCamelCase										=		logging.get_logger(__name__)

__lowerCamelCase										=		{
    "google/fnet-base": "https://huggingface.co/google/fnet-base/resolve/main/config.json",
    "google/fnet-large": "https://huggingface.co/google/fnet-large/resolve/main/config.json"
    # See all FNet models at https://huggingface.co/models?filter=fnet
}
class        _lowercase					(     __UpperCAmelCase     ):
     _lowerCamelCase     =       '''fnet'''







     def __init__(      self ,						UpperCamelCase_=3_2000 ,						UpperCamelCase_=768 ,						UpperCamelCase_=12 ,						UpperCamelCase_=3072 ,						UpperCamelCase_="gelu_new" ,						UpperCamelCase_=0.1 ,						UpperCamelCase_=512 ,						UpperCamelCase_=4 ,						UpperCamelCase_=0.0_2 ,						UpperCamelCase_=1E-1_2 ,						UpperCamelCase_=False ,						UpperCamelCase_=512 ,						UpperCamelCase_=3 ,						UpperCamelCase_=1 ,						UpperCamelCase_=2 ,						**UpperCamelCase_ ,						):
      super().__init__(pad_token_id=UpperCamelCase_ ,						bos_token_id=UpperCamelCase_ ,						eos_token_id=UpperCamelCase_ ,						**UpperCamelCase_       )

      __magic_name__     =      vocab_size
      __magic_name__     =      max_position_embeddings
      __magic_name__     =      hidden_size
      __magic_name__     =      num_hidden_layers
      __magic_name__     =      intermediate_size
      __magic_name__     =      hidden_act
      __magic_name__     =      hidden_dropout_prob
      __magic_name__     =      initializer_range
      __magic_name__     =      type_vocab_size
      __magic_name__     =      layer_norm_eps
      __magic_name__     =      use_tpu_fourier_optimizations
      __magic_name__     =      tpu_short_seq_length

