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

返回

张量,输入样本的点积。