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

返回值

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