2016-10-11 61 views
8

我試圖實現谷歌的Facenet紙:如何在凱拉斯實施三重損失?

所有的

enter image description here

首先,是有可能使用Keras的連續API來實現這一紙或者我應該去的圖形API?

在任何情況下,請你告訴我,我如何通過自定義損失函數tripletLoss到模型編譯,我如何收到anchor embeddingpositive embeddingnegative embedding作爲參數來計算損失?

而且,應該是第二個參數Y在model.fit(),我沒有任何在這種情況下...

+0

嘿!你能在Keras上實施Facenet嗎?我正在研究一個需要這個項目的項目,並且想知道你是否能夠解決這個問題...... – Rob

回答

2

This issue介紹如何創建Keras自定義目標(虧損):

def dummy_objective(y_true, y_pred): 
    return 0.5 # your implem of tripletLoss here 

model.compile(loss=dummy_objective, optimizer='adadelta') 

關於.fit()y參數,因爲你是一個最終處理它(目標函數的y_true參數從它採取的),我會說你可以通過任何你需要一個能夠適合通過凱拉斯管道。如果你真的不需要任何監督,也許是一個虛擬矢量來通過維度檢查。

最終,至於如何實現這個特定的文件,尋找tripletfacenetKeras doc沒有返回任何東西。所以你可能要麼自己實現它,要麼找到有人。