




'''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 						lowerCamelCase__   (				a    ,	a    ,	a    ,	a							):
						# Initialise PyTorch model
						__snake_case						 =   BigBirdConfig.from_json_file(a							)
						print(f'Building PyTorch model from configuration: {config}'							)

						if is_trivia_qa:
												__snake_case						 =   BigBirdForQuestionAnswering(a							)
						else:
												__snake_case						 =   BigBirdForPreTraining(a							)

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

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


if __name__ == "__main__":
	_lowercase  =			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."""
	)
	_lowercase  =			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'''


def 						lowerCamelCase__   (				a							):
						assert (
						    isinstance(a    ,	a							) and number_of_steps > 0
						), f'number_of_steps needs to be positive integer, your input {number_of_steps}'
						if number_of_steps == 1:
												return 1
						__snake_case ,       __snake_case						 =   1, 1
						for _ in range(number_of_steps - 1							):
												__snake_case ,       __snake_case						 =   current + previous, current
						return current


if __name__ == "__main__":
	import doctest

	doctest.testmod()

