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:标准层关键字参数。

返回

一个张量,表示输入样本的点积。