使用预先训练的网络(1个分支)初始化caffe中具有2个分支的网络中的层的权重



我有一个多任务网络,有两个类似的分支,还有一个预训练的网络,只有一个分支(也是相同的)。我想用我的预训练网络中的层的权重初始化两个分支(在我的多任务网络中)中的层权重。

现在,我可以通过使用与预训练网络中相同的层名称来正确初始化其中一个分支。但是,我必须保持另一个分支中层的名称不同,因此这些层不会采用预先训练的权重。

另外,我不想分享这两个分支的权重。因此,为两个分支中相应层中的权重指定相同的名称是行不通的。

有什么好方法/窍门做这件事吗?

附言:我想避免网络手术,但任何评论,解释一个很好的方法,也欢迎。

澄清:我只想用相同的权重初始化两个分支。他们可以在训练阶段学习不同的重量,因为他们受到不同的损失层的控制。

Przemak D的答案是一个很好的破解方法。

  1. 为两个分支中的层指定不同的名称,并启用权重共享
  2. 初始化网络并训练1-2次迭代
  3. 然后训练原始网络(没有权重共享),用作为步骤2之后的结果获得的咖啡模型初始化权重

以上是一个不错的破解方法,但网络手术是更好的方法。

最新更新