Google官网Bert模型加载方式

1、在C:\Users\admin\convert_bert_original_tf_checkpoint_to_pytorch.py里修改Bert模型的各配置文件的地址
2、在命令行输入
python convert_bert_original_tf_checkpoint_to_pytorch.py --tf_checkpoint_path bert_model.ckpt.index --bert_config_file bert_config.json  --pytorch_dump_path  pytorch_model.bin


直接在命令行输入,记得修改该命令中的地址
python convert_bert_original_tf_checkpoint_to_pytorch.py --tf_checkpoint_path="C:\Users\admin\uncased_L-8_H-512_A-8\bert_model.ckpt.data-00000-of-00001" --bert_config_file="C:\Users\admin\uncased_L-8_H-512_A-8\bert_config.json" --pytorch_dump_path="C:\Users\admin\uncased_L-8_H-512_A-8\pytorch_model.bin"

失败告终,总是会有报错,Google一开始这个模型就不是以pytorch形式发布的。。。。。。。
好像有不是真的没有成功,虽然会有提示说缺少了一些参数,但有人说“这不是一个错误。您需要训练模型,因为该模型没有经过训练的输出标头。如果您不想训练它,您可以寻找具有适合您任务的具有预训练头部的 bert 模型。这是应该发生的事情。在训练后加载模型时,您将不会看到此错误消息。”
还有人说“这是个警告信息,不是报错信息。这只说明对应的加载的预训练模型与任务类型不完全对应。如这个模型的架构是BertForMaskedLM,因此用BERT在别的任务上的model类来调用该预训练模型时,要么出现有些参数用不到的情况(如用于MLM任务的预测头),要么出现有些参数没有、需要随机初始化的情况(如用于分类任务的预测头)。本例由于我只想输出transformer模型的last hidden state,因此用不到警告信息中所说的这些分类参数。”

理论上应该完全匹配(config.json中给出的architectures就是BertForMaskedLM),但是仍会显示有些参数用不到:参考https://github.com/huggingface/transformers/issues/5421#issuecomment-717245807,应该是因为官方的BERT模型有两个预测头(MLM和NSP),所以MLM任务上的模型没有加载NSP的预测头。

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值