![](/img/trans.png)
[英]How to write this custom loss function so it produces a loss for each sample?
[英]How do I pass a sample to a loss function?
我有一個 keras model,其中每個樣本由 3 個標量和 2 個矩陣組成。 其中一個矩陣是掩碼。 我需要看起來像 (Y_hat * mask - Y)^2 的均方損失 function,其中乘法是逐點的。 每個樣本都有自己的掩碼。 我如何讓這個面具對損失 function 可用?
與其創建一個復雜的損失 function,不如在將其發送到損失 function 之前將掩碼應用於 Y_hat? 您仍然可以出於其他目的讀出原始值。 對於兩個輸入,您確實必須使用功能性 api:
# assuming mask is a binary array
y_hat = f(scalars, matrix)
y_hat_masked = y_hat * mask
model = keras.Model(inputs=inputs, outputs = y_hat_masked, name="example")
如果您還需要未屏蔽的 output,您可以簡單地使用多個輸出,並且只在屏蔽的 output 上運行損失
model = keras.Model(inputs=..., outputs=[y_hat, y_hat_masked], name="example")
model.compile(optimizer= ..., loss = [None, loss_fun])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.