如何从Pytorch中的预训练模型加载保存的令牌生成器

时间:2019-10-16 15:57:36

标签: machine-learning pytorch

我使用拥抱面变压器在Pytorch中微调了预训练的BERT模型。所有训练/验证均在云中的GPU上完成。

在培训结束时,我将模型和令牌生成器保存如下:

best_model.save_pretrained('./saved_model/')
tokenizer.save_pretrained('./saved_model/')

这将在saved_model目录中创建以下文件:

config.json
added_token.json
special_tokens_map.json
tokenizer_config.json
vocab.txt
pytorch_model.bin

现在,我将saved_model目录下载到计算机中,并希望加载模型和令牌生成器。我可以像下面那样加载模型

model = torch.load('./saved_model/pytorch_model.bin',map_location=torch.device('cpu'))

但是如何加载令牌生成器?我是pytorch的新手,不确定,因为有多个文件。可能我没有以正确的方式保存模型?

请提出建议。

1 个答案:

答案 0 :(得分:1)

如果您查看语法,则这是您应该传递的经过预先训练的模型的目录。因此,加载令牌生成器的正确方法必须是:

tokenizer = BertTokenizer.from_pretrained(<Path to the directory containing pretrained model/tokenizer>)

在您的情况下:

tokenizer = BertTokenizer.from_pretrained('./saved_model/')

./saved_model是用于保存预训练模型和令牌生成器的目录。