from math import ceil

def 							UpperCamelCase				(    lowerCAmelCase_ = 10_01   )		->						int:




       '''simple docstring'''






       _A=	1

       for i in range(1       ,					int(ceil(n / 2.0   )   )   ):
              _A=	2 * i + 1
              _A=	2 * i
              _A=	total + 4 * odd**2 - 6 * even

       return total


if __name__ == "__main__":
     import sys

     if len(sys.argv) == 1:
          print(solution())
     else:
          try:
               UpperCAmelCase_								=							int(sys.argv[1])
               print(solution(n))
          except ValueError:
               print('''Invalid entry - please enter a number''')
import argparse

import torch

from transformers import BertForMaskedLM


if __name__ == "__main__":
      UpperCAmelCase_								=							argparse.ArgumentParser(
          description=(
              '''Extraction some layers of the full BertForMaskedLM or RObertaForMaskedLM for Transfer Learned'''
              ''' Distillation'''
          )
      )
      parser.add_argument('''--model_type''', default='''bert''', choices=['''bert'''])
      parser.add_argument('''--model_name''', default='''bert-base-uncased''', type=str)
      parser.add_argument('''--dump_checkpoint''', default='''serialization_dir/tf_bert-base-uncased_0247911.pth''', type=str)
      parser.add_argument('''--vocab_transform''', action='''store_true''')
      UpperCAmelCase_								=							parser.parse_args()

      if args.model_type == "bert":
            UpperCAmelCase_								=							BertForMaskedLM.from_pretrained(args.model_name)
            UpperCAmelCase_								=							'''bert'''
      else:
            raise ValueError('''args.model_type should be "bert".''')

      UpperCAmelCase_								=							model.state_dict()
      UpperCAmelCase_								=							{}

      for w in ["word_embeddings", "position_embeddings"]:
            UpperCAmelCase_								=							state_dict[F"{prefix}.embeddings.{w}.weight"]
      for w in ["weight", "bias"]:
            UpperCAmelCase_								=							state_dict[F"{prefix}.embeddings.LayerNorm.{w}"]

      UpperCAmelCase_								=							0
      for teacher_idx in [0, 2, 4, 7, 9, 11]:
            for w in ["weight", "bias"]:
                  UpperCAmelCase_								=							state_dict[
                      F"{prefix}.encoder.layer.{teacher_idx}.attention.self.query.{w}"
                  ]
                  UpperCAmelCase_								=							state_dict[
                      F"{prefix}.encoder.layer.{teacher_idx}.attention.self.key.{w}"
                  ]
                  UpperCAmelCase_								=							state_dict[
                      F"{prefix}.encoder.layer.{teacher_idx}.attention.self.value.{w}"
                  ]

                  UpperCAmelCase_								=							state_dict[
                      F"{prefix}.encoder.layer.{teacher_idx}.attention.output.dense.{w}"
                  ]
                  UpperCAmelCase_								=							state_dict[
                      F"{prefix}.encoder.layer.{teacher_idx}.attention.output.LayerNorm.{w}"
                  ]

                  UpperCAmelCase_								=							state_dict[
                      F"{prefix}.encoder.layer.{teacher_idx}.intermediate.dense.{w}"
                  ]
                  UpperCAmelCase_								=							state_dict[
                      F"{prefix}.encoder.layer.{teacher_idx}.output.dense.{w}"
                  ]
                  UpperCAmelCase_								=							state_dict[
                      F"{prefix}.encoder.layer.{teacher_idx}.output.LayerNorm.{w}"
                  ]
            std_idx += 1

      UpperCAmelCase_								=							state_dict['''cls.predictions.decoder.weight''']
      UpperCAmelCase_								=							state_dict['''cls.predictions.bias''']
      if args.vocab_transform:
            for w in ["weight", "bias"]:
                  UpperCAmelCase_								=							state_dict[F"cls.predictions.transform.dense.{w}"]
                  UpperCAmelCase_								=							state_dict[F"cls.predictions.transform.LayerNorm.{w}"]

      print(F"N layers selected for distillation: {std_idx}")
      print(F"Number of params transferred for distillation: {len(compressed_sd.keys())}")

      print(F"Save transferred checkpoint to {args.dump_checkpoint}.")
      torch.save(compressed_sd, args.dump_checkpoint)