[英]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.