
import argparse

import torch

from transformers import BertConfig, BertForPreTraining, load_tf_weights_in_bert
from transformers.utils import logging


logging.set_verbosity_info()


def 				SCREAMING_SNAKE_CASE_   (      UpperCamelCase__			,		UpperCamelCase__			,		UpperCamelCase__		):
      # Initialise PyTorch model
      UpperCamelCase__     : int											=					BertConfig.from_json_file(UpperCamelCase__		)
      print(f'''Building PyTorch model from configuration: {config}'''		)
      UpperCamelCase__     : Union[str, Any]											=					BertForPreTraining(UpperCamelCase__		)

      # Load weights from tf checkpoint
      load_tf_weights_in_bert(UpperCamelCase__			,		UpperCamelCase__			,		UpperCamelCase__		)

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


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(
        "--bert_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."
    )
    lowerCamelCase  =parser.parse_args()
    convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.bert_config_file, args.pytorch_dump_path)




def 				SCREAMING_SNAKE_CASE_   (      UpperCamelCase__			,		UpperCamelCase__			,		UpperCamelCase__			,		UpperCamelCase__			,		UpperCamelCase__		):
      if index == number_of_items:
            return 0
      UpperCamelCase__     : str											=					0
      UpperCamelCase__     : Optional[Any]											=					0
      UpperCamelCase__     : int											=					knapsack(UpperCamelCase__			,		UpperCamelCase__			,		UpperCamelCase__			,		UpperCamelCase__			,		index + 1		)
      if weights[index] <= max_weight:
            UpperCamelCase__     : List[Any]											=					values[index] + knapsack(
                UpperCamelCase__			,		UpperCamelCase__			,		UpperCamelCase__			,		max_weight - weights[index]			,		index + 1		)
      return max(UpperCamelCase__			,		UpperCamelCase__		)


if __name__ == "__main__":
    import doctest

    doctest.testmod()


