'''simple docstring'''




import argparse

import torch

from transformers import MobileBertConfig, MobileBertForPreTraining, load_tf_weights_in_mobilebert
from transformers.utils import logging


logging.set_verbosity_info()






def __lowerCAmelCase					(				UpperCamelCase__							,    UpperCamelCase__							,    UpperCamelCase__							)      ->       Union[str, Any]:
    # Initialise PyTorch model
    __lowerCamelCase            =    MobileBertConfig.from_json_file(UpperCamelCase__							)
    print(f"""Building PyTorch model from configuration: {config}"""							)
    __lowerCamelCase            =    MobileBertForPreTraining(UpperCamelCase__							)
    # Load weights from tf checkpoint
    __lowerCamelCase            =    load_tf_weights_in_mobilebert(UpperCamelCase__							,    UpperCamelCase__							,    UpperCamelCase__							)
    # Save pytorch-model
    print(f"""Save PyTorch model to {pytorch_dump_path}"""							)
    torch.save(model.state_dict()							,    UpperCamelCase__							)


if __name__ == "__main__":
  __UpperCAmelCase					=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(
      "--mobilebert_config_file",
      default=None,
      type=str,
      required=True,
      help=(
          "The config json file corresponding to the pre-trained MobileBERT 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."
  )
  __UpperCAmelCase					=parser.parse_args()
  convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.mobilebert_config_file, args.pytorch_dump_path)

'''simple docstring'''




def __lowerCAmelCase					(				UpperCamelCase__							)      ->       float:
    __lowerCamelCase            =    0
    while len(UpperCamelCase__							) > 1:
        __lowerCamelCase            =    0
        # Consider two files with minimum cost to be merged
        for _ in range(2							):
            __lowerCamelCase            =    files.index(min(UpperCamelCase__							)							)
            temp += files[min_index]
            files.pop(UpperCamelCase__							)
        files.append(UpperCamelCase__							)
        optimal_merge_cost += temp
    return optimal_merge_cost


if __name__ == "__main__":
  import doctest

  doctest.testmod()
