簡體   English   中英

Keras 中的自定義損失 Function - 遍歷 TensorFlow

[英]Custom Loss Function in Keras - Iterate through TensorFlow

我正在努力在 Keras 中創建自定義損失 function。 這是一個例子。

import keras.backend as K
def test(y_true, y_pred):
     loss = K.square(y_pred - y_true)
     loss = K.mean(loss, axis = 1)
return loss 

現在在這個例子中,我只想從 y_pred 中減去特定值,但由於這是在 tensorflow 中,我該如何迭代拋出它們。

例如,我可以遍歷 y_pred 來選擇值嗎? 如何? 假設對於這個例子,批量大小是 5。

我已經嘗試過諸如 y_pred[0...i] tf.arange 等等...

在編譯 model 時傳遞它。 喜歡

model.compile(optimizer='sgd', loss = test)

Keras 將自動迭代它。 您在 return 語句中也有意圖錯誤。

import keras.backend as K
def test(y_true, y_pred):
     loss = K.square(y_pred - y_true)
     loss = K.mean(loss, axis = 1)
     return loss 

def test_accuracy(y_true, y_pred):
     return 1 - test(y_true, y_pred)

通過這種方式,您可以將自定義損失 function 傳遞給 model ,您也可以類似地傳遞准確度函數

model.compile(optimizer='sgd', loss = test, metrics=[test_accuracy])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM