
"""simple docstring"""




# Imports
import numpy as np





class  snake_case     :

							def __init__(self       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None    ):

									"""simple docstring"""







									self.set_matricies(red=SCREAMING_SNAKE_CASE_       ,       green=SCREAMING_SNAKE_CASE_       ,       blue=SCREAMING_SNAKE_CASE_       ,       red_edge=SCREAMING_SNAKE_CASE_       ,       nir=SCREAMING_SNAKE_CASE_    )

							def _lowercase					(self       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None    ):

									"""simple docstring"""







									if red is not None:
											SCREAMING_SNAKE_CASE_						 = red
									if green is not None:
											SCREAMING_SNAKE_CASE_						 = green
									if blue is not None:
											SCREAMING_SNAKE_CASE_						 = blue
									if red_edge is not None:
											SCREAMING_SNAKE_CASE_						 = red_edge
									if nir is not None:
											SCREAMING_SNAKE_CASE_						 = nir
									return True

							def _lowercase					(self       ,       SCREAMING_SNAKE_CASE_=""       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None    ):

									"""simple docstring"""







									self.set_matricies(red=SCREAMING_SNAKE_CASE_       ,       green=SCREAMING_SNAKE_CASE_       ,       blue=SCREAMING_SNAKE_CASE_       ,       red_edge=SCREAMING_SNAKE_CASE_       ,       nir=SCREAMING_SNAKE_CASE_    )
									SCREAMING_SNAKE_CASE_						 = {
									    '''ARVI2''': self.arvaa,
									    '''CCCI''': self.ccci,
									    '''CVI''': self.cvi,
									    '''GLI''': self.gli,
									    '''NDVI''': self.ndvi,
									    '''BNDVI''': self.bndvi,
									    '''redEdgeNDVI''': self.red_edge_ndvi,
									    '''GNDVI''': self.gndvi,
									    '''GBNDVI''': self.gbndvi,
									    '''GRNDVI''': self.grndvi,
									    '''RBNDVI''': self.rbndvi,
									    '''PNDVI''': self.pndvi,
									    '''ATSAVI''': self.atsavi,
									    '''BWDRVI''': self.bwdrvi,
									    '''CIgreen''': self.ci_green,
									    '''CIrededge''': self.ci_rededge,
									    '''CI''': self.ci,
									    '''CTVI''': self.ctvi,
									    '''GDVI''': self.gdvi,
									    '''EVI''': self.evi,
									    '''GEMI''': self.gemi,
									    '''GOSAVI''': self.gosavi,
									    '''GSAVI''': self.gsavi,
									    '''Hue''': self.hue,
									    '''IVI''': self.ivi,
									    '''IPVI''': self.ipvi,
									    '''I''': self.i,
									    '''RVI''': self.rvi,
									    '''MRVI''': self.mrvi,
									    '''MSAVI''': self.m_savi,
									    '''NormG''': self.norm_g,
									    '''NormNIR''': self.norm_nir,
									    '''NormR''': self.norm_r,
									    '''NGRDI''': self.ngrdi,
									    '''RI''': self.ri,
									    '''S''': self.s,
									    '''IF''': self._if,
									    '''DVI''': self.dvi,
									    '''TVI''': self.tvi,
									    '''NDRE''': self.ndre,
									}

									try:
											return funcs[index]()
									except KeyError:
											print('''Index not in the list!'''    )
											return False

							def _lowercase					(self    ):

									"""simple docstring"""







									return -0.18 + (1.17 * ((self.nir - self.red) / (self.nir + self.red)))

							def _lowercase					(self    ):

									"""simple docstring"""







									return ((self.nir - self.redEdge) / (self.nir + self.redEdge)) / (
									    (self.nir - self.red) / (self.nir + self.red)
									)

							def _lowercase					(self    ):

									"""simple docstring"""







									return self.nir * (self.red / (self.green**2))

							def _lowercase					(self    ):

									"""simple docstring"""







									return (2 * self.green - self.red - self.blue) / (
									    2 * self.green + self.red + self.blue
									)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.nir - self.red) / (self.nir + self.red)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.nir - self.blue) / (self.nir + self.blue)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.redEdge - self.red) / (self.redEdge + self.red)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.nir - self.green) / (self.nir + self.green)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.nir - (self.green + self.blue)) / (
									    self.nir + (self.green + self.blue)
									)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.nir - (self.green + self.red)) / (
									    self.nir + (self.green + self.red)
									)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.nir - (self.blue + self.red)) / (self.nir + (self.blue + self.red))

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.nir - (self.green + self.red + self.blue)) / (
									    self.nir + (self.green + self.red + self.blue)
									)

							def _lowercase					(self       ,       SCREAMING_SNAKE_CASE_=0.08       ,       SCREAMING_SNAKE_CASE_=1.22       ,       SCREAMING_SNAKE_CASE_=0.03    ):

									"""simple docstring"""







									return a * (
									    (self.nir - a * self.red - b)
									    / (a * self.nir + self.red - a * b + x * (1 + a**2))
									)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (0.1 * self.nir - self.blue) / (0.1 * self.nir + self.blue)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.nir / self.green) - 1

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.nir / self.redEdge) - 1

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.red - self.blue) / self.red

							def _lowercase					(self    ):

									"""simple docstring"""







									SCREAMING_SNAKE_CASE_						 = self.ndvi()
									return ((ndvi + 0.5) / (abs(ndvi + 0.5    ))) * (abs(ndvi + 0.5    ) ** (1 / 2))

							def _lowercase					(self    ):

									"""simple docstring"""







									return self.nir - self.green

							def _lowercase					(self    ):

									"""simple docstring"""







									return 2.5 * (
									    (self.nir - self.red) / (self.nir + 6 * self.red - 7.5 * self.blue + 1)
									)

							def _lowercase					(self    ):

									"""simple docstring"""







									SCREAMING_SNAKE_CASE_						 = (2 * (self.nir**2 - self.red**2) + 1.5 * self.nir + 0.5 * self.red) / (
									    self.nir + self.red + 0.5
									)
									return n * (1 - 0.25 * n) - (self.red - 0.1_25) / (1 - self.red)

							def _lowercase					(self       ,       SCREAMING_SNAKE_CASE_=0.16    ):

									"""simple docstring"""







									return (self.nir - self.green) / (self.nir + self.green + y)

							def _lowercase					(self       ,       SCREAMING_SNAKE_CASE_=0.5    ):

									"""simple docstring"""







									return ((self.nir - self.green) / (self.nir + self.green + n)) * (1 + n)

							def _lowercase					(self    ):

									"""simple docstring"""







									return np.arctan(
									    ((2 * self.red - self.green - self.blue) / 30.5) * (self.green - self.blue)    )

							def _lowercase					(self       ,       SCREAMING_SNAKE_CASE_=None       ,       SCREAMING_SNAKE_CASE_=None    ):

									"""simple docstring"""







									return (self.nir - b) / (a * self.red)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.nir / ((self.nir + self.red) / 2)) * (self.ndvi() + 1)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.red + self.green + self.blue) / 30.5

							def _lowercase					(self    ):

									"""simple docstring"""







									return self.nir / self.red

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.rvi() - 1) / (self.rvi() + 1)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (
									    (2 * self.nir + 1)
									    - ((2 * self.nir + 1) ** 2 - 8 * (self.nir - self.red)) ** (1 / 2)
									) / 2

							def _lowercase					(self    ):

									"""simple docstring"""







									return self.green / (self.nir + self.red + self.green)

							def _lowercase					(self    ):

									"""simple docstring"""







									return self.nir / (self.nir + self.red + self.green)

							def _lowercase					(self    ):

									"""simple docstring"""







									return self.red / (self.nir + self.red + self.green)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.green - self.red) / (self.green + self.red)

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.red - self.green) / (self.red + self.green)

							def _lowercase					(self    ):

									"""simple docstring"""







									SCREAMING_SNAKE_CASE_						 = np.max([np.max(self.red    ), np.max(self.green    ), np.max(self.blue    )]    )
									SCREAMING_SNAKE_CASE_						 = np.min([np.min(self.red    ), np.min(self.green    ), np.min(self.blue    )]    )
									return (max_value - min_value) / max_value

							def _lowercase					(self    ):

									"""simple docstring"""







									return (2 * self.red - self.green - self.blue) / (self.green - self.blue)

							def _lowercase					(self    ):

									"""simple docstring"""







									return self.nir / self.red

							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.ndvi() + 0.5) ** (1 / 2)







							def _lowercase					(self    ):

									"""simple docstring"""







									return (self.nir - self.redEdge) / (self.nir + self.redEdge)

"""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
		SCREAMING_SNAKE_CASE_						 = BigBirdConfig.from_json_file(__a    )
		print(F'Building PyTorch model from configuration: {config}'    )

		if is_trivia_qa:
				SCREAMING_SNAKE_CASE_						 = BigBirdForQuestionAnswering(__a    )
		else:
				SCREAMING_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__":
						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
						)