我使用拥抱面变压器在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的新手,不确定,因为有多个文件。可能我没有以正确的方式保存模型?
请提出建议。
答案 0 :(得分:1)
如果您查看语法,则这是您应该传递的经过预先训练的模型的目录。因此,加载令牌生成器的正确方法必须是:
tokenizer = BertTokenizer.from_pretrained(<Path to the directory containing pretrained model/tokenizer>)
在您的情况下:
tokenizer = BertTokenizer.from_pretrained('./saved_model/')
./saved_model
是用于保存预训练模型和令牌生成器的目录。