


'''simple docstring'''






import argparse

import torch

from transformers import OpenAIGPTConfig, OpenAIGPTModel, load_tf_weights_in_openai_gpt
from transformers.utils import CONFIG_NAME, WEIGHTS_NAME, logging


logging.set_verbosity_info()





def lowerCamelCase__      (						__lowerCamelCase	:							int	,   __lowerCamelCase	:							Any	,   __lowerCamelCase	:							List[str]							):







   '''simple docstring'''




   if openai_config_file == "":
      _UpperCAmelCase       :       Optional[Any]							   =OpenAIGPTConfig()
   else:
      _UpperCAmelCase       :       str							   =OpenAIGPTConfig.from_json_file(__lowerCamelCase							)
   _UpperCAmelCase       :       str							   =OpenAIGPTModel(__lowerCamelCase							)

   # Load weights from numpy
   load_tf_weights_in_openai_gpt(__lowerCamelCase	,   __lowerCamelCase	,   __lowerCamelCase							)

   # Save pytorch-model
   _UpperCAmelCase       :       str							   =pytorch_dump_folder_path + '/' + WEIGHTS_NAME
   _UpperCAmelCase       :       Tuple							   =pytorch_dump_folder_path + '/' + CONFIG_NAME
   print(f"Save PyTorch model to {pytorch_weights_dump_path}"							)
   torch.save(model.state_dict()	,   __lowerCamelCase							)
   print(f"Save configuration file to {pytorch_config_dump_path}"							)
   with open(__lowerCamelCase	,   'w'	,   encoding='utf-8'							) as f:
      f.write(config.to_json_string()							)


if __name__ == "__main__":
 lowercase							=argparse.ArgumentParser()
 # Required parameters
 parser.add_argument(
     '--openai_checkpoint_folder_path',
     default=None,
     type=str,
     required=True,
     help='Path to the TensorFlow checkpoint path.',
 )
 parser.add_argument(
     '--pytorch_dump_folder_path', default=None, type=str, required=True, help='Path to the output PyTorch model.'
 )
 parser.add_argument(
     '--openai_config_file',
     default='',
     type=str,
     help=(
         'An optional config json file corresponding to the pre-trained OpenAI model. \n'
         'This specifies the model architecture.'
     ),
 )
 lowercase							=parser.parse_args()
 convert_openai_checkpoint_to_pytorch(
     args.openai_checkpoint_folder_path, args.openai_config_file, args.pytorch_dump_folder_path
 )





'''simple docstring'''






lowercase							=[0, 2, 4, 6, 8]
lowercase							=[1, 3, 5, 7, 9]





def lowerCamelCase__      (						__lowerCamelCase	:							int	,   __lowerCamelCase	:							int	,   __lowerCamelCase	:							list[int]	,   __lowerCamelCase	:							int							):







   '''simple docstring'''




   if remaining_length == 0:
      if digits[0] == 0 or digits[-1] == 0:
         return 0

      for i in range(length // 2 - 1	,   -1	,   -1							):
         remainder += digits[i] + digits[length - i - 1]

         if remainder % 2 == 0:
            return 0

         remainder //= 1_0

      return 1

   if remaining_length == 1:
      if remainder % 2 == 0:
         return 0

      _UpperCAmelCase       :       Union[str, Any]							   =0
      for digit in range(1_0							):
         _UpperCAmelCase       :       str							   =digit
         result += reversible_numbers(
             0	,   (remainder + 2 * digit) // 1_0	,   __lowerCamelCase	,   __lowerCamelCase							)
      return result

   _UpperCAmelCase       :       Optional[Any]							   =0
   for digita in range(1_0							):
      _UpperCAmelCase       :       Any							   =digita

      if (remainder + digita) % 2 == 0:
         _UpperCAmelCase       :       Optional[int]							   =ODD_DIGITS
      else:
         _UpperCAmelCase       :       Union[str, Any]							   =EVEN_DIGITS

      for digita in other_parity_digits:
         _UpperCAmelCase       :       int							   =digita
         result += reversible_numbers(
             remaining_length - 2	,   (remainder + digita + digita) // 1_0	,   __lowerCamelCase	,   __lowerCamelCase	,   )
   return result





def lowerCamelCase__      (						__lowerCamelCase	:							int = 9							):







   '''simple docstring'''




   _UpperCAmelCase       :       Optional[int]							   =0
   for length in range(1	,   max_power + 1							):
      result += reversible_numbers(__lowerCamelCase	,   0	,   [0] * length	,   __lowerCamelCase							)
   return result


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

