我正在嘗試實現一個將產生自定義丟失函數的Lambda圖層。在圖層中,我需要能夠將批次中的每個元素與批次中的每個其他元素進行比較,以便計算成本。理想情況下,我想代碼看起來是這樣的:Keras Lambda圖層自定義丟失
for el_1 in zip(y_pred, y_true):
for el_2 in zip(y_pred, y_true):
if el_1[1] == el_2[1]:
# Perform a calculation
else:
# Perform a different calculation
當我真的這樣,我得到:
TypeError: TensorType does not support iteration.
我使用Keras版本2.0.2與Theano版本0.9.0後端。我明白我需要使用Keras張量函數來做到這一點,但我無法弄清楚任何張量函數都是我想要的。
此外,我很難理解我的Lambda函數應該返回什麼。它是每個樣品總成本的張量,還是僅僅是該批次的總成本?
幾天來,我一直在毆打我的頭。任何幫助深表謝意。
沒關係,用Keras回調,我確定Lambda應該返回什麼 - 每批一個標量。但是,我仍然無法弄清楚在訓練過程中如何迭代張量。我認爲這可能與切片有關... – gaw89
你看過我的回答嗎? – nemo
對不起,週末過去了。剛接受。非常感謝! – gaw89