Pytorch模型迁移和迁移学习,导入部分模型参数的操作
如果,我们修改了resnet18的网络结构,如何将原来预训练模型参数迁移到新的resnet18网络中呢?比如,这里将官方的resnet18的self.layer4 = self._make_layer改为:self.layer44 = self._make_layer这时,直接加载模型:这时,肯定会报错,类似:Missing key in state_dict或者Unexpected key in state_dict的错误:。方法很简单,只需要将resnet18-5c106cde.pth的模型参数中所有前缀为layer4的名称,改为layer44即可本人已经定义好了方法:这时,输出,跟之前一模一样了。解法首先把你需要添加参数的那一小部分模型提取出来,并新建一个类进行重新定义,如图向Alexnet中添加前三层的参数,重新定义前三层。其他语句都相当于是模板,套用即可。
下载地址
用户评论