|
import os |
|
import sys |
|
import argparse |
|
|
|
import torch |
|
import shutil |
|
|
|
|
|
sys.path.append("../") |
|
from models import PLTNUM |
|
|
|
|
|
def parse_args(): |
|
""" |
|
Parse command line arguments. |
|
""" |
|
parser = argparse.ArgumentParser( |
|
description="Convert the model implemented with nn.Module to a model implemented with transformers' PreTrainedModel." |
|
) |
|
parser.add_argument( |
|
"--model_path", |
|
type=str, |
|
help="The path to a model weight which you want to convert.", |
|
) |
|
parser.add_argument( |
|
"--config_and_tokenizer_path", |
|
type=str, |
|
help="The path to a config and tokenizer of the model which you want to convert.", |
|
) |
|
parser.add_argument( |
|
"--model", |
|
type=str, |
|
help="The name of the base model of the finetuned model", |
|
) |
|
parser.add_argument( |
|
"--output_dir", |
|
type=str, |
|
default="./", |
|
help="Directory to save the prediction.", |
|
) |
|
parser.add_argument( |
|
"--task", |
|
type=str, |
|
default="classification", |
|
) |
|
|
|
return parser.parse_args() |
|
|
|
|
|
if __name__ == "__main__": |
|
config = parse_args() |
|
|
|
if not os.path.exists(config.output_dir): |
|
os.makedirs(config.output_dir) |
|
|
|
model = PLTNUM(config) |
|
model.load_state_dict(torch.load(config.model_path, map_location="cpu")) |
|
|
|
torch.save(model.state_dict(), os.path.join(config.output_dir, "pytorch_model.bin")) |
|
for filename in ["config.json", "special_tokens_map.json", "tokenizer_config.json", "vocab.txt"]: |
|
shutil.copy(os.path.join(config.config_and_tokenizer_path, filename), os.path.join(config.output_dir, filename)) |