pytorch中修改后的模型如何加载预训练模型

Posted yongy1030

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytorch中修改后的模型如何加载预训练模型相关的知识,希望对你有一定的参考价值。

问题描述

简单来说,比如你要加载一个vgg16模型,但是你自己需要的网络结构并不是原本的vgg16网络,可能你删掉某些层,可能你改掉某些层,这时你去加载预训练模型,就会报错,错误原因就是你的模型和原本的模型不匹配。

 

此时有两种解决方法:

1、重新解析参数的字典,将预训练模型的参数提取出来,然后放在自己的模型中对应的位置

2、直接用原本的vgg16网络去加载预训练模型,然后再修改网络。

 

具体操作待续吧......

 

我个人推荐第一种方法。

以上是关于pytorch中修改后的模型如何加载预训练模型的主要内容,如果未能解决你的问题,请参考以下文章

为啥新层在修改后的预训练 pytorch 模型中被忽略?

pytorch加载内置模型、修改网络结构及加载预训练参数

pytorch如何给预训练模型添加新的层

如何加载部分预训练的 pytorch 模型?

在 pytorch 中修改预训练模型时,旧的权重会重新初始化吗?

如何使用 PyTorch 在预训练模型上添加新层? (给出了 Keras 示例。)