簡體   English   中英

在自定義損失函數中使用Keras層

[英]Using Keras layers inside custom loss function

是否可以在自定義損失函數中使用Keras層(沒有可訓練參數的預訓練層或固定層)?

我想做類似的事情:

def custom_loss(y_true, y_pred):
    y_true_trans = SomeKerasLayer()(y_true)
    y_true_trans = SomeKerasLayer()(y_pred)
    return K.mean(K.abs(y_pred_trans - y_true_trans), axis=-1)

在Tensorflow后端中,出現錯誤:

在make_tensor_proto中的第364行中,文件“ /home/drb/venvs/keras/lib/python3.5/site-packages/tensorflow/python /framework/tensor_util.py”

引發ValueError(“不支持任何值。”)

ValueError:不支持任何值。

當然,我可以使用Loss函數之外的y_pred層對y_pred進行轉換(通過提供額外的輸出),但是我不能對參考值y_true進行相同處理。

用更籠統的術語表述相同問題的另一種方法是:是否可以將Keras層封裝為Keras后端函數?

有什么解決方案或解決方法嗎?

這個問題有點含糊不清,因此它既是肯定的又是否定的。
根據您的實現,您可以嘗試
model = keras.layers.Add(..something..)(x)
其中x =先前相關值的名稱。

暫無
暫無

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

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