Model 如何为序列分类模型标记器和配置保存微调的bert?

Model 如何为序列分类模型标记器和配置保存微调的bert?,model,save,bert-language-model,Model,Save,Bert Language Model,我想将微调后的所有训练模型保存在文件夹中,如下所示: config.json added_token.json special_tokens_map.json tokenizer_config.json vocab.txt pytorch_model.bin 我只能保存pytorch_model.bin,但我无法保存的其他细节,如何保存模型的所有配置、标记器等 我曾经 tokenizer.save_pretrained('results/tokenizer/') 但是耳环和耳环 Attrib

我想将微调后的所有训练模型保存在文件夹中,如下所示:

config.json
added_token.json
special_tokens_map.json
tokenizer_config.json
vocab.txt
pytorch_model.bin
我只能保存pytorch_model.bin,但我无法保存的其他细节,如何保存模型的所有配置、标记器等

我曾经

tokenizer.save_pretrained('results/tokenizer/')
但是耳环和耳环

AttributeError: 'BertTokenizer' object has no attribute 'save_pretrained'
我通过以下代码保存了二进制模型文件

torch.save(model_to_save.state_dict(), output_model_file)
但当我用它来保存标记器或配置文件时,我不能这样做,因为我不知道应该保存标记器的文件扩展名,而且我无法访问cofig文件, 有没有办法保存我模型的所有细节?
提前感谢

我不知道您是如何定义标记器的,也不知道您将“标记器”变量分配给了什么,但这可以解决您的问题:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(...)
tokenizer.save_pretrained('results/tokenizer/')
这将保存关于标记器的所有信息,并使用
您的\u模型。save\u pretrained('results/tokenizer/')
您将获得:

config.json
added_token.json
special_tokens_map.json
tokenizer_config.json
vocab.txt
pytorch_model.bin
更新以下评论:

如果您使用的是pytorch_pretrained_bert import BertForSequenceClassification的
,则该属性不可用(如您从中看到的)

您应该做的是使用它,它也集成了此功能

例如:

from transformers import BertForSequenceClassification

model = BertForSequenceClassification.from_pretrained('bert-base-uncased')
model.save_pretrained('results/tokenizer/')

另一个解决方案是使用。

我尝试了您的代码您的模型。保存预训练('results/tokenizer/'),但出现此错误torch.nn.modules.moduleatTributeTerror:'BertForSequenceClassification'对象没有属性'save\u pretrained'当然是,现在,我尝试更新我的答案,使其更完整,以便更好地解释。我尝试了更新的解决方案,但出现错误。nn.modules.ModuleAttributeError:“BertForSequenceClassification”对象没有属性“save_pretrained”,您没有使用我更新的答案中的代码。您将继续使用
pytorch\u pretrained\u bert
而不是
transformers
。请复制并粘贴我的最后三行,您将看到它的工作原理。鉴于我对模型进行了微调,并且我希望保存微调后的版本,而不是导入的版本,并且我可以使用此代码保存我的模型的.bin文件model\u to\u save=model.module if hasattr(model,'module')else model#只保存它自己输出的模型(model)file=os.path.join(args.output_dir,“pytorch_model_task.bin”),但我无法保存其他配置文件