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

點積層

[原始碼]

Dot 類別

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

計算兩個張量中樣本之間點積的層。

例如,如果應用於兩個形狀為 (batch_size, n) 的張量 ab 的列表,則輸出將是一個形狀為 (batch_size, 1) 的張量,其中每個條目 i 將是 a[i]b[i] 之間的點積。

>>> x = np.arange(10).reshape(1, 5, 2)
>>> print(x)
[[[0 1]
  [2 3]
  [4 5]
  [6 7]
  [8 9]]]
>>> y = np.arange(10, 20).reshape(1, 2, 5)
>>> print(y)
[[[10 11 12 13 14]
  [15 16 17 18 19]]]
>>> tf.keras.layers.Dot(axes=(1, 2))([x, y])
<tf.Tensor: shape=(1, 2, 2), dtype=int64, numpy=
array([[[260, 360],
        [320, 445]]])>
>>> x1 = tf.keras.layers.Dense(8)(np.arange(10).reshape(5, 2))
>>> x2 = tf.keras.layers.Dense(8)(np.arange(10, 20).reshape(5, 2))
>>> dotted = tf.keras.layers.Dot(axes=1)([x1, x2])
>>> dotted.shape
TensorShape([5, 1])