簡體   English   中英

即使在Keras中使用Lambda層,也沒有屬性'_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM