在PyTorch中使用跳过分支将权重从预训练模型复制到我新定义的模型的最佳方法?

时间:2017-11-13 16:27:21

标签: pytorch

我想根据自己的任务微调ImageNet上现有的最先进模型。我的模型改编自vgg网络,它有几个分支连接到不同的卷积层输出,类似如下: enter image description here

但是火炬中的definition of vgg model并不那么直截了当。它由一个特征模块和一个分类器模块组成,它们都是componentWillReceiveProps(nextProps) { if(nextProps.url !== this.props.url) { //do something with the nextProps.url } } ,这使得很难从中间卷积层的输出中产生分支。所以现在,我按层手动定义新模型图层,不要使用nn.Sequential,就像this一样。

但是有问题。现在新定义的模型与某些层中的原始vgg网络共享相同的权重,但是,层名称不再相应。当然,我可以手动找到旧模型和新模型的重量之间的对应关系,并直接复制重量。我认为这很麻烦。有没有更简单的方法将重量从旧模型复制到新模型?

0 个答案:

没有答案