import argparse

import torch

from transformers import FunnelBaseModel, FunnelConfig, FunnelModel, load_tf_weights_in_funnel
from transformers.utils import logging


logging.set_verbosity_info()






def _lowerCamelCase  (		snake_case     , snake_case     , snake_case     , snake_case  ):
							# Initialise PyTorch model
							_lowerCAmelCase							=							FunnelConfig.from_json_file(lowerCamelCase__  )
							print(F'Building PyTorch model from configuration: {config}'  )
							_lowerCAmelCase							=							FunnelBaseModel(lowerCamelCase__  ) if base_model else FunnelModel(lowerCamelCase__  )

							# Load weights from tf checkpoint
							load_tf_weights_in_funnel(lowerCamelCase__     , lowerCamelCase__     , lowerCamelCase__  )

							# Save pytorch-model
							print(F'Save PyTorch model to {pytorch_dump_path}'  )
							torch.save(model.state_dict()     , lowerCamelCase__  )


if __name__ == "__main__":
				_lowercase:	int       			=		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(
				    '''--base_model''', action='''store_true''', help='''Whether you want just the base model (no decoder) or not.'''
				)
				_lowercase:	Any       			=		parser.parse_args()
				convert_tf_checkpoint_to_pytorch(
				    args.tf_checkpoint_path, args.config_file, args.pytorch_dump_path, args.base_model
				)








from math import isqrt





def      lowerCamelCase_					(							lowerCamelCase__       ):
				lowerCamelCase_         =     [True] * max_number
				for i in range(2      ,					isqrt(max_number - 1       ) + 1       ):
								if is_prime[i]:
												for j in range(i**2      ,					lowerCamelCase__      ,					lowerCamelCase__       ):
																lowerCamelCase_         =     False

				return [i for i in range(2      ,					lowerCamelCase__       ) if is_prime[i]]





def      lowerCamelCase_					(							lowerCamelCase__ = 1_0**8       ):
				lowerCamelCase_         =     calculate_prime_numbers(max_number // 2       )

				lowerCamelCase_         =     0
				lowerCamelCase_         =     0
				lowerCamelCase_         =     len(lowerCamelCase__       ) - 1
				while left <= right:
								while prime_numbers[left] * prime_numbers[right] >= max_number:
												right -= 1
								semiprimes_count += right - left + 1
								left += 1

				return semiprimes_count


if __name__ == "__main__":
			print(F"""{solution() = }""")


