我想要在將kera傳遞給另一圖層之前執行向量矩陣乘法的keras中的lambda層。矩陣是固定的(我不想學習它)。下面的代碼:用於矩陣向量乘法的Keras Lambda層
model.add(Dropout(0.1))
model.add(Lambda(lambda x: x.dot(A)))
model.add(Dense(output_shape, activation='softmax'))
model.compile(<stuff here>)}
A是固定的矩陣,我想做x.dot(A)
,當我運行它,我得到以下錯誤:
'Tensor' object has no attribute 'dot'
當我用matmul替換點(我正在使用tensorflow後端)時出現同樣的錯誤
最後,當我用lambda層替換
model.add(Lambda(lambda x: x*A))
我得到下面的錯誤:
model.add(Lambda(lambda x: x*G))
model.add(Dense(output_shape, activation='softmax'))
AttributeError: 'tuple' object has no attribute '_dims'
我是新來Keras所以任何幫助將不勝感激。謝謝
這似乎是合理的,我嘗試過,但得到如下:層重量形狀(1,265)所提供的重量形狀(265不兼容, 265)。 265是A.shape [1](這是一個方形矩陣) – NSR
你能提供'model.summary()'嗎?看起來之前的圖層的輸出尺寸等於1. –
如果前一圖層的輸出形狀是'(None,265,1)',那麼我認爲您可以通過添加一個'Flatten'圖層來移除額外的座標軸。 –