1. 程式人生 > >多工深度學習程式碼

多工深度學習程式碼

轉載自:多工深度學習
基於Caffe實現多工學習的小樣例

本節在目前廣泛使用的深度學習開源框架Caffe的基礎上實現多工深度學習演算法所需的多維標籤輸入。預設的,Caffe中的Data層只支援單維標籤,為了支援多維標籤,首先修改Caffe中的convert_imageset.cpp以支援多標籤:

這樣我們就有了多工的深度學習的基礎部分資料輸入。為了向上相容Caffe框架,本文摒棄了部分開源實現增加Data層標籤維度選項並修改Data層程式碼的做法,直接使用兩個Data層將資料讀入,即分別讀入資料和多維標籤,接下來介紹對應的網路結構檔案prototxt的修改,注意紅色的註釋部分。

特別的,slice層對多維的標籤進行了切分,為每個任務輸出了單獨的標籤。

另外一個值得討論的是每個任務的權重設定,在本文實踐中五個任務設定為等權重loss_weight:0.2。一般的,建議所有任務的權重值相加為1,如果這個數值不設定,可能會導致網路收斂不穩定,這是因為多工學習中對不同任務的梯度進行累加,導致梯度過大,甚至可能引發引數溢位錯誤導致網路訓練失敗。



作者:程程
連結:https://zhuanlan.zhihu.com/p/22190532
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。