我想根据自己的任务微调ImageNet上现有的最先进模型。我的模型改编自vgg网络,它有几个分支连接到不同的卷积层输出,类似如下:
但是火炬中的definition of vgg model并不那么直截了当。它由一个特征模块和一个分类器模块组成,它们都是componentWillReceiveProps(nextProps) {
if(nextProps.url !== this.props.url) {
//do something with the nextProps.url
}
}
,这使得很难从中间卷积层的输出中产生分支。所以现在,我按层手动定义新模型图层,不要使用nn.Sequential
,就像this一样。
但是有问题。现在新定义的模型与某些层中的原始vgg网络共享相同的权重,但是,层名称不再相应。当然,我可以手动找到旧模型和新模型的重量之间的对应关系,并直接复制重量。我认为这很麻烦。有没有更简单的方法将重量从旧模型复制到新模型?