一种RuntimeError Key bert/embeddings/position_embeddings not found in checkpoint的解决思路

一种RuntimeError: Key bert/embeddings/position_embeddings not found in checkpoint的解决思路

注意:这个方法绝对有问题,但是能解决燃眉之急

P.S.建议不要死磕,直接使用pytorch版的该模型会快乐的多,地址贴这里了
https://github.com/JunnYu/RoFormer_pytorch

最近因为各种各样的原因,完全0基础的小白不得不跑一下苏老师的simBERTv2模型,下载下来,并且采用了bert4keras官网给的代码示例后,这就开跑,结果报了错误:

RuntimeError: Key bert/embeddings/position_embeddings not found in checkpoint

在这里插入图片描述
方法1:关于图的错误
没解决,另外图中的函数已经过时,现在要采用tf.compat.v1.reset_default_graph()

环境:python3.6+keras2.3.1+tensorflow2.2.0+bert4keras0.10.6(如果和你的电脑已安装的一些包有冲突,请安装miniconda,配置一个python36的环境)

经过了几天的研究,我发现了以下的解决思路,但我感觉肯定还有些问题:

  1. 检查checkpoint文件内的地址,因为我是在windows上跑的,而苏老师的文件中默认的地址为一个Linux下的地址,把它改成自己的地址
  2. 循着报错我们发现,原因是检查点内找不到一些权重,顺着以上的报错找到models.py的load_weight_from_checkpoint函数,这是错误源头

在这里插入图片描述

  1. 直接忽略“不存在权重的问题”,即修改ignore_invalid_weights(models.py)为True
  2. 使用的conda,一定要退出后再重进才能配置生效

在像上述那样做以后,总感觉怪怪的,以为忽略加载模型就不对了,以下给一个可以看检查点保存了什么内容的代码链接(位置2.1):

tensorflow中的检查点checkpoint详解(二)——以tensorflow1.x 的模型保存与恢复为主_LoveMIss-Y的博客-CSDN博客_checkpoint文件

采用以上代码查看了一下,这个检查点里确实没有position_embedding,而不是别的比如图加载的问题。

后续我还会研究一下这个position_embedding的问题,毕竟以上只是偷懒的方法,而且我没有基础瞎搞也不好

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值