2017-07-05 39 views
3

我試圖寫Lambda層在Keras其中調用一個函數connection,一個運行循環for i in range(0,k)其中k被供給在作爲輸入的功能,connection(x,k) LAMBDA層功能。現在,當我嘗試調用該函數的功能API中,我嘗試使用:Keras:使用多個參數

k = 5 
y = Lambda(connection)(x) 

此外,

y = Lambda(connection)(x,k) 

但無論這些方法的工作。如何在不將其分配爲全局參數的情況下輸入k的值?

+0

「k」是否爲常量?或者它是在模型中的某個位置計算的?作爲輸入數據的一部分,它是模型的輸入嗎? –

+0

'k'通過模型更新。 「k」的值在不同的時間發生變化,我稱之爲「Lambda」層。但是我在Keras GitHub Issue中找到了解決方案[here](https://github.com/fchollet/keras/pull/1911)。使用'y = Lambda(connection,arguments = {'k':k})(x)'工作! – Prabaha

回答

5

this GitHub Pull Request找到解決問題的辦法。使用

y = Lambda(connection, arguments={'k':k})(x) 

工作!

+0

注意:默認情況下'model.save_weights()'不會將'k'識別爲模型的一部分。 – rangu