[英]Multiply a layer by a boolean mask in Keras, getting error 'NoneType' object has no attribute '_inbound_nodes'
[英]no attribute '_inbound_nodes' error even when using Lambda layer in Keras
我有一個(28,000 x 300)尺寸矩陣,我們稱它為label_embedding ,我想在模型的瓶頸層上做一個點積。 我創建了一個體系結構,在其瓶頸層提供了(batch_size x 300) 。
我正在使用生成器函數進行輸入。 通過以下方式將label_embedding矩陣作為輸入:
inp7 = Input(tensor=labels_embeddings)
對於點積,我正在執行以下操作:
out = Lambda(dot_)([x1, K.transpose(inp7)])
其中x1是瓶頸層,而dot_是:
def dot_(tensors):
return K.dot(tensors[0], tensors[1])
問題是,即使out變量的形狀正確,即(batch_size x 28000) ,我也會收到以下錯誤:
AttributeError: 'NoneType' object has no attribute '_inbound_nodes'
PS:我正在使用tensorflow和keras
PS:我一直在使用keras圖層,直到使用keras后端作為K的out變量為止
好的,我解決了問題。 因此,所有基於后端的功能都需要包裝在lambda層中。 所以代替:
out = Lambda(dot_)([x1, K.transpose(inp7)])
和
def dot_(tensors):
return K.dot(tensors[0], tensors[1])
我寫:
out = Lambda(dot_)([x1, inp7])
和
def dot_(tensors):
return K.dot(tensors[0], K.transpose(tensors[1]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.