codingutf8 2020 the huggingface inc team licensed under the apache license version 2 0 the license you may not use this file except in compliance with the license you may obtain a copy of the license at http www apache orglicenseslicense2 0 unless required by applicable law or agreed to in writing software distributed under the license is distributed on an as is basis without warranties or conditions of any kind either express or implied see the license for the specific language governing permissions and limitations under the license convert convbert checkpoint import argparse from transformers import convbertconfig convbertmodel tfconvbertmodel loadtfweightsinconvbert from transformers utils import logging logging setverbosityinfo def convertorigtf1checkpointtopytorchtfcheckpointpath convbertconfigfile pytorchdumppath conf convbertconfig fromjsonfileconvbertconfigfile model convbertmodelconf model loadtfweightsinconvbertmodel conf tfcheckpointpath model savepretrainedpytorchdumppath tfmodel tfconvbertmodel frompretrainedpytorchdumppath frompttrue tfmodel savepretrainedpytorchdumppath if name main parser argparse argumentparser required parameters parser addargument tfcheckpointpath defaultnone typestr requiredtrue helppath to the tensorflow checkpoint path parser addargument convbertconfigfile defaultnone typestr requiredtrue help the config json file corresponding to the pretrained convbert model n this specifies the model architecture parser addargument pytorchdumppath defaultnone typestr requiredtrue helppath to the output pytorch model args parser parseargs convertorigtf1checkpointtopytorchargs tfcheckpointpath args convbertconfigfile args pytorchdumppath coding utf 8 2020 the huggingface inc team licensed under the apache license version 2 0 the license you may not use this file except in compliance with the license you may obtain a copy of the license at http www apache org licenses license 2 0 unless required by applicable law or agreed to in writing software distributed under the license is distributed on an as is basis without warranties or conditions of any kind either express or implied see the license for the specific language governing permissions and limitations under the license convert convbert checkpoint required parameters
import argparse

from transformers import ConvBertConfig, ConvBertModel, TFConvBertModel, load_tf_weights_in_convbert
from transformers.utils import logging


logging.set_verbosity_info()


def convert_orig_tf1_checkpoint_to_pytorch(tf_checkpoint_path, convbert_config_file, pytorch_dump_path):
    conf = ConvBertConfig.from_json_file(convbert_config_file)
    model = ConvBertModel(conf)

    model = load_tf_weights_in_convbert(model, conf, tf_checkpoint_path)
    model.save_pretrained(pytorch_dump_path)

    tf_model = TFConvBertModel.from_pretrained(pytorch_dump_path, from_pt=True)
    tf_model.save_pretrained(pytorch_dump_path)


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    
    parser.add_argument(
        "--tf_checkpoint_path", default=None, type=str, required=True, help="Path to the TensorFlow checkpoint path."
    )
    parser.add_argument(
        "--convbert_config_file",
        default=None,
        type=str,
        required=True,
        help=(
            "The config json file corresponding to the pre-trained ConvBERT 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."
    )
    args = parser.parse_args()
    convert_orig_tf1_checkpoint_to_pytorch(args.tf_checkpoint_path, args.convbert_config_file, args.pytorch_dump_path)