0
我正在處理一個項目,該項目將圖像中的對象本地化。我將要採用的方法是基於CS231n-8中的定位算法。如何使用TensorFlow最小化兩個損失?
的網絡結構有兩個優化磁頭,分類頭和迴歸頭。培訓網絡時,我怎樣才能最小化他們?
我有一個想法,總結他們都爲一個損失。但問題是分類損失是softmax損失和迴歸損失是l2損失,這意味着他們有不同的範圍。我不認爲這是最好的方式。
我正在處理一個項目,該項目將圖像中的對象本地化。我將要採用的方法是基於CS231n-8中的定位算法。如何使用TensorFlow最小化兩個損失?
的網絡結構有兩個優化磁頭,分類頭和迴歸頭。培訓網絡時,我怎樣才能最小化他們?
我有一個想法,總結他們都爲一個損失。但問題是分類損失是softmax損失和迴歸損失是l2損失,這意味着他們有不同的範圍。我不認爲這是最好的方式。
這取決於你的網絡狀況。
如果您的網絡只能提取特徵[您正在使用從其他網絡保存的權重],則可以將此權重設置爲常量,然後分別訓練兩個分類頭,因爲梯度不會流動槽常數。
如果你不使用權從預訓練模型,你
迴歸頭將學會將從卷積層中提取的特徵進行組合以適應其參數,以便最小化L2損失。
鉈; DR:
graph_util.convert_variables_to_constants
作爲「freeze_graph`劇本拿給。
太好了!感謝您的回答。我可以再問一個問題:如何在訓練迴歸頭時代表「背景」課?我現在使用零。有沒有更好的辦法? –
你正在訓練迴歸頭:你不需要背景課。你的火車組包含了對象邊界框的位置,所以你將學會迴歸這些座標,而不是其他的。背景是這些座標之外的所有內容。 我只在分類頭中使用背景類,在訓練時未使用(我只顯示包含對象的圖像),但在網絡以本地化模式運行時使用。如果我用迴歸頭預測一些座標,但分類頭告訴我這是背景,我跳過位置 – nessuno
這很有道理。謝謝。 –