解决SiamRPN预训练模型的问题

本文主要讨论了在使用预训练模型时遇到的key不匹配问题,指出原因是构建的网络模型与预训练模型的层结构不一致。为解决此问题,建议按照预训练模型的层结构重新构建网络,并提供了查看模型key值的代码。同时分享了一个适用于TularovArbi SiamRPN复现的预训练模型链接,并推荐了该代码实现的可读性。解决此类问题可能还需根据具体代码进行调整。
摘要由CSDN通过智能技术生成

加入预训练模型,若是报类似以下的错误:

 Unexpected key(s) in state_dict: "layer1.0.weight", "layer1.0.bias", "layer1.1.weight", "layer1.1.bias", "layer1.1._var", "layer2.0.weight", "layer2.0.bias", "layer2.1.weight", "layer2.1.bias", "layer2.1.running_mean", "layer2.1.running_v0.bias", "layer3.1.weight", "layer3.1.bias", "layer3.1.running_mean", "layer3.1.running_var", "layer4.0.weight", "layer4.0.4.1.bias", "layer4.1.running_mean", "layer4.1.running_var", "layer5.0.weight", "layer5.0.bias", "layer5.1.weight", "layer5., "layer5.1.running_var".

最直接的方法,放与代码网络匹配的预训练模型!!!
其他的比较好找,就不提供了。这里提供一个匹配Tularov Arbi复现的SiamRPN预训练模型,链接如下:
https://pan.baidu.com/s/1road7tNSIc65VRjtiDSTiw提取码:69nq

还是要推荐一下Tularov Arbi复现的SiamRPN代码。这个代码看着很舒服、很整洁。比较容易看懂。

下面解决的方法就比较复杂了!!!
出现上述错误,因为我们构建的网络模型和加入的预训练模型的key值不对应。说key值可能不太好理解。用下面例子简单说一下:
预训练模型构建的网络:
在这里插入图片描述
我们自己构建的网络:
在这里插入图片描述
如上所示,self.layer1就好比keys。 而我们的是self.featureExtractd,这两是没有办法对应上的。所以运行的时候就报出现意外的keys的错误。

我们按着预训练模型keys值的结构,重新构建我们的网络就可以了。还有一点这样重新构建可以解决上述问题。但是想运行通可能还需要改一些地方的代码,这就需要按着你的代码要求去修改了!

最后放一个查看模型key值的代码:

checkpoint = torch.load(config.pretrained_model, map_location='cpu')
        for k,v in checkpoint.items():
          print(k)
        print("hcc-wyq")
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值