美文网首页
加载和自己模型不匹配的预训练模型参数解决方法

加载和自己模型不匹配的预训练模型参数解决方法

作者: JIAWEIJIAWEI | 来源:发表于2022-01-05 16:16 被阅读0次
net = .... #自己的模型
save_model = torch.load(model_weight_path) # 获取预训练模型字典(键值对)
model_dict = net.state_dict() # 获取自己模型字典(键值对)
# 新定义字典,用来获取自己模型中对应层的预训练模型中的参数
state_dict = {k:v for k,v in save_model.items() if k in model_dict.keys()} 
state_dict.pop('fc.weight')  # 丢掉FC层,因为输出不同,或_fc.weight
state_dict.pop('fc.bias')  # 丢掉FC层,因为输出不同,或_fc.bias
model_dict.update(state_dict) # 更新自己模型字典中键值对
net.load_state_dict(model_dict) # 加载参数

相关文章

网友评论

      本文标题:加载和自己模型不匹配的预训练模型参数解决方法

      本文链接:https://www.haomeiwen.com/subject/gnfkcrtx.html