




'''simple docstring'''






import argparse

import torch

from transformers import ImageGPTConfig, ImageGPTForCausalLM, load_tf_weights_in_imagegpt
from transformers.utils import CONFIG_NAME, WEIGHTS_NAME, logging


logging.set_verbosity_info()

def      __lowerCAmelCase   (       snake_case__   , snake_case__   , snake_case__		):
			# Construct configuration depending on size
			__UpperCamelCase :     Optional[int]										=  {"small": (512, 8, 24), "medium": (1_024, 8, 36), "large": (1_536, 16, 48)}
			__UpperCamelCase						,   __UpperCamelCase						,   __UpperCamelCase :     List[Any]										=  MODELS[model_size]  # set model hyperparameters
			__UpperCamelCase :     Tuple										=  ImageGPTConfig(n_embd=snake_case__   , n_layer=snake_case__   , n_head=snake_case__		)
			__UpperCamelCase :     Union[str, Any]										=  ImageGPTForCausalLM(snake_case__		)

			# Load weights from numpy
			load_tf_weights_in_imagegpt(snake_case__   , snake_case__   , snake_case__		)

			# Save pytorch-model
			__UpperCamelCase :     Union[str, Any]										=  pytorch_dump_folder_path + "/" + WEIGHTS_NAME
			__UpperCamelCase :     Optional[int]										=  pytorch_dump_folder_path + "/" + CONFIG_NAME
			print(F"Save PyTorch model to {pytorch_weights_dump_path}"		)
			torch.save(model.state_dict()   , snake_case__		)
			print(F"Save configuration file to {pytorch_config_dump_path}"		)
			with open(snake_case__   , "w"   , encoding="utf-8"		) as f:
						f.write(config.to_json_string()		)


if __name__ == "__main__":
				_lowerCAmelCase       =   argparse.ArgumentParser()
				# Required parameters
				parser.add_argument(
				    '''--imagegpt_checkpoint_path''',
				    default=None,
				    type=str,
				    required=True,
				    help='''Path to the TensorFlow checkpoint path.''',
				)
				parser.add_argument(
				    '''--model_size''',
				    default=None,
				    type=str,
				    required=True,
				    help='''Size of the model (can be either \'small\', \'medium\' or \'large\').''',
				)
				parser.add_argument(
				    '''--pytorch_dump_folder_path''', default=None, type=str, required=True, help='''Path to the output PyTorch model.'''
				)
				_lowerCAmelCase       =   parser.parse_args()
				convert_imagegpt_checkpoint_to_pytorch(
				    args.imagegpt_checkpoint_path, args.model_size, args.pytorch_dump_folder_path
				)









'''simple docstring'''






import itertools

def      __lowerCAmelCase   (       snake_case__		):
			return (
			    int("".join(combination[0:2]		)		) * int("".join(combination[2:5]		)		)
			    == int("".join(combination[5:9]		)		)
			) or (
			    int("".join(combination[0]		)		) * int("".join(combination[1:5]		)		)
			    == int("".join(combination[5:9]		)		)
			)

def      __lowerCAmelCase   (       ):
			return sum(
			    {
			        int("".join(pandigital[5:9]		)		)
			        for pandigital in itertools.permutations("123456789"		)
			        if is_combination_valid(snake_case__		)
			    }		)


if __name__ == "__main__":
				print(solution())



