keras如何自定義triplet loss損失函式?

時間 2021-06-02 18:47:17

1樓:周周周

請問我想用keras自定義loss函式,loss=[y_true>0]log(y_pred)+[y_true<0]log(1-y_pred)

我在實現過程中老是報錯,能麻煩您指導下嗎

其中[x]表示滿足x條件返回1 否則返回0

2樓:Rainman 22

這種操作是可以的。我用keras試驗過可行。但是最終還是沒有用這種方式,遇到一些特別的麻煩。

首先在最終feed資料的時候,必須嚴格的將anchor\positive\negative順序排好。而我們直覺上還是喜歡分開3個佇列,分別排序。

按照ng的做法,訓練佇列是a1,p1,n1,a2,p2,n2,a3,p3,n3...

而我最終嘗試的做法,訓練分為3個佇列:a1,a2,a3 p1,p2,p3 n1,n2,n3 ....

只是分成3個佇列就涉及到多輸入model,這個結構上會麻煩一點。不過我花費了3天功夫,還是改成了多輸入模型。因為以後遇到實際問題,學會用多輸入模型會更加符合現實情況以及人類直覺。

Pytorch如何自定義損失函式(Loss Function)?

vector的回答已經比較詳細地介紹了自己寫pytorch 裡loss function 的方法。但是在你自己去定義loss function前需要明白pytorch的自動求導機制,從而避免很多問題。1.你想用的loss function究竟能不能作為loss function來監督學習。很多時候我...

Swift Haskell 等可以自定義運算子的語言(不僅是過載),實現編譯器時跟其他語言有什麼區別?

深海 其他語言我不太了解,簡單說一下 Swift 的實現.Swift Haskell 還有不少函式式語言實現運算子的思路是一樣的 規定運算子必須由某些特殊字元構成,且這些字元和構成識別符號 identifier 的字符集的交集為空.這樣一來,lexer 就很簡單了,和傳統編譯器沒差.除了中綴 二元 ...

自定義android studio的配置檔案目錄後,無法正常安裝和解除安裝外掛程式,是何原因?

大攀 這個問題我解決了,應該是配置plugins路徑的問題,直接貼修復好的配置 idea.config.path D AndroidStudio2.0 config Uncomment this option if you want to customize path to IDE system f...