Keras 3 API 文件 / 層 API / 合併層 / 點積層

點積層

[原始碼]

Dot 類別

keras.layers.Dot(axes, normalize=False, **kwargs)

計算兩個張量的逐元素點積。

它接受大小為 2 的輸入列表,以及每個輸入對應的軸,將沿這些軸執行點積。

假設 xy 是兩個輸入張量,形狀分別為 (2, 3, 5)(2, 10, 3)。兩個輸入的批次維度大小應相同,且 axes 應對應於相應輸入中大小相同的維度。例如,使用 axes=(1, 2)xy 的點積將產生一個形狀為 (2, 5, 10) 的張量。

範例

>>> x = np.arange(10).reshape(1, 5, 2)
>>> y = np.arange(10, 20).reshape(1, 2, 5)
>>> keras.layers.Dot(axes=(1, 2))([x, y])

在 Keras 模型中的用法

>>> x1 = keras.layers.Dense(8)(np.arange(10).reshape(5, 2))
>>> x2 = keras.layers.Dense(8)(np.arange(10, 20).reshape(5, 2))
>>> y = keras.layers.Dot(axes=1)([x1, x2])

參數

  • axes:整數或整數元組,沿其執行點積的軸或多個軸。如果是一個元組,則應為兩個整數,分別對應於來自第一個輸入的所需軸和來自第二個輸入的所需軸。請注意,兩個選定軸的大小必須匹配。
  • normalize:是否在執行點積之前沿點積軸對樣本進行 L2 正規化。如果設定為 True,則點積的輸出是兩個樣本之間的餘弦相似度。
  • **kwargs:標準層關鍵字參數。

返回值

一個張量,即來自輸入樣本的點積。