已解决:KeyError: ‘Transformer/encoderblock_0\\MultiHeadDotProductAttention_1/query\\kernel is not a

报错:

KeyError:‘Transformer/encoderblock_0\MultiHeadDotProductAttention_1/query\kernel is not a file in the archive’

出错原因:

pjoin(ROOT, ATTENTION_Q, “kernel”)将多个路径组合为一个路径出错

pjoin()函数在Windows下,路径分隔符是反斜杠\,而在Unix和Linux下,路径分隔符是正斜杠/

pjoin(ROOT, ATTENTION_Q, “kernel”)在windows下输出为

'Transformer/encoderblock_0\MultiHeadDotProductAttention_1/query\kernel`

正确的加载路径应为

'Transformer/encoderblock_0/MultiHeadDotProductAttention_1/query/kernel`

解决办法:

在moding.py 文件中:将下面几行代码

query_weight = np2th(weights[pjoin(ROOT, ATTENTION_Q, "kernel")]).view(self.hidden_size, self.hidden_size).t()
key_weight = np2th(weights[pjoin(ROOT, ATTENTION_K, "kernel")]).view(self.hidden_size, self.hidden_size).t()
value_weight = np2th(weights[pjoin(ROOT, ATTENTION_V, "kernel")]).view(self.hidden_size, self.hidden_size).t()
out_weight = np2th(weights[pjoin(ROOT, ATTENTION_OUT, "kernel")]).view(self.hidden_size, self.hidden_size).t()
修改为:
query_weight = np2th(weights[(ROOT + '/' + ATTENTION_Q + "/kernel")]).view(self.hidden_size,self.hidden_size).t()
key_weight = np2th(weights[(ROOT + '/' + ATTENTION_K + "/kernel")]).view(self.hidden_size, self.hidden_size).t()
value_weight = np2th(weights[(ROOT + '/' + ATTENTION_V + "/kernel")]).view(self.hidden_size,self.hidden_size).t()
out_weight = np2th(weights[(ROOT + '/' + ATTENTION_OUT+ "/kernel")]).view(self.hidden_size, self.hidden_size).t()

即可解决代码报错问题。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值