[英]Single loss function with multi-input multi-output model in Keras
我正在嘗試使用 Keras 訓練多輸入 (3) 多輸出 (4) model 並且我需要使用包含所有 output 預測的單一損失 function。 這些輸出中的 2 個是我關心的真實 model 輸出並具有相應的標簽,而其他 2 個輸出是我的 model 中的可學習參數,我想用它來動態更新我的真實 model 輸出的損失權重。 我需要這樣的東西:
model.compile(optimizer=optimizer, loss = unified_loss
統一損失應該可以訪問我所有的 model 輸出和相應的標簽。 我正在使用tf.data.from_tensor_slices(...)
進行訓練。
我發現的唯一解決方法是使用自定義訓練循環,它允許這樣做。 但是,我失去了很多功能,回調變得更難以實現。
有沒有辦法使用常規的model.compilt(...)
和model.fit(...)
來解決這個問題?
除了不是首選的自定義訓練循環之外,我確實嘗試了以下標准方法:
model.compile(optimizer=optimizer, loss = [loss1, loss2], loss_weights = [alpha, beta]
我嘗試制作 alpha 和 beta 可學習參數,但這是不希望的,因為我有一個自定義方程,它比簡單的加權和更復雜。
向您的 model 添加一個層,將損失連接到單個張量/輸出中。 讓您的自定義損失解析出四個值中的每一個並對它們運行必要的數學運算。 在推理期間,在沒有額外層的情況下運行 model。
使用略有不同的 model 進行訓練和推理的模式很常見。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.