Caffe多工訓練時忽略部分無用或未標註類標

2021-08-18 03:20:59 字數 558 閱讀 4781

ignore labels in caffe when using multi-task multi-label training

現在不經常用caffe了,不過臨時面臨乙個問題:多工訓練的時候,假設有n個任務,但部分類標不全,或者只對其中x(0這在tensorflow裡面很好實現,合併loss的時候加上判斷就行了。但為了方便快速實現,回頭在原來caffe的基礎上修改了一下。參考了官方**後得到的方法如下:

如果希望忽略某些類標,需要在相應任務對應的softmaxwithloss和accuracy層新增以下引數,例如:

softmaxwithloss層需要在loss_param裡面新增ignore_label,後面寫對應的類標

layer

}accuracy層需要在accuracy_param裡面新增ignore_label,後面寫對應的類標

layer

}這樣在這一任務訓練和測試的準確率都不會包含這些類標。

在實際操作時,可以在類標檔案裡把沒有的類標用-1或其他沒用類標填充,並在訓練的prototxt裡把相應類標寫在ignore_label裡即可

參考:

多工 執行緒部分概念

多工 執行緒 cpu每個核每次都只能執行乙個任務 併發 指的是任務數多餘cpu核數,通過作業系統的各種任務排程演算法,實現用多個任務 一起 執行 實際上總有一些任務不在執行,因為切換任務的速度相當快,看上去一起執行而已 並行 指的是任務數小於等於cpu核數,即任務真的是一起執行的 執行緒就是在程式執...

caffe多工學習之多標籤分類

最近在參加乙個識別的競賽,專案裡涉及了許多類別的分類,原本打算乙個大的類別訓練乙個分類模型,但是這樣會比較麻煩,對於同一的分類會重複計算分類網路中的卷積層,浪費計算時間和效率。後來發現現在深度學習中的多工學習可以實現多標籤分類,所有的類別只需要訓練乙個分類模型就行,其不同屬性的類別之間是共享卷積層的...

caffe多工學習之多標籤分類

最近在參加乙個識別的競賽,專案裡涉及了許多類別的分類,原本打算乙個大的類別訓練乙個分類模型,但是這樣會比較麻煩,對於同一的分類會重複計算分類網路中的卷積層,浪費計算時間和效率。後來發現現在深度學習中的多工學習可以實現多標籤分類,所有的類別只需要訓練乙個分類模型就行,其不同屬性的類別之間是共享卷積層的...