簡體   English   中英

使用預先訓練的Network(1分支)初始化caffe中具有2個分支的網絡中的圖層權重

[英]Use a Pre-trained Network(1 branch) to initialize weights of layers in a Network with 2 branches in caffe

我有一個具有兩個類似分支的多任務網絡,以及一個只有一個分支的預訓練網絡(也是相同的)。 我想用我的預訓練網絡中各層的權重來初始化兩個分支(在我的多任務網絡中)中各層的權重。

現在,我可以通過使用與預訓練網絡中相同的層名稱來正確初始化分支之一。 但是,我必須保持另一個分支中各層的名稱不同,因此這些層將不會采用預先訓練的權重。

另外,我不想在兩個分支機構中共享權重。 因此,對兩個分支的相應層中的權重賦予相同的名稱將不起作用。

有沒有很好的方法/技巧來做到這一點?

PS:我想避免使用網絡外科手術,但是也歡迎提出任何解釋這種方法的建議。

澄清:我只想用相同的權重初始化兩個分支。 他們在訓練階段可以學習不同的權重,因為它們受不同的損失層控制。

Przemak D答案是完成以上操作的好方法。

  1. 為兩個分支中的圖層賦予不同的名稱並啟用權重共享
  2. 初始化網絡並訓練1-2次迭代
  3. 然后訓練原始網絡(不進行權重共享),並使用在步驟2之后獲得的caffemodel初始化權重。

上面是一個不錯的技巧,但是網絡手術是一種更好的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM