用于在 Keras 中合并图层的乘法和点函数有什么区别?

数据挖掘 深度学习 喀拉斯 张量流 卷积 卷积神经网络
2022-03-11 16:40:06

我想使用 Keras 合并两个 CNN 深度学习模型,想知道用于合并层的乘法和点函数有什么区别?

keras.layers.multiply(inputs)


keras.layers.dot(inputs, axes, normalize=False)
1个回答

multiply()函数执行逐元素乘法。例如,为了简单起见,让我们考虑 1D CNN,并且您传递两个批量大小b的输入,张量长度为 5,输出将是 (b,5),因为它是逐元素乘法。让我们假设两个长度为 5 的张量如下:[1,2,3,4,5][6,7,8,9,10],结果应该是[6,14,24,36,50]元素乘法。

在 的情况下dot(),它取点积,一维的点积在数学上定义为:a.b = sum(a_i * b_i),其中i范围从 0 到 n-1;其中 n 是向量 a 和 b 中的元素数。(对于 2-D ,您可以将其视为矩阵乘法)。所以结果应该是批量大小的(b,1)长度b在输出示例的情况下,和的点积结果[1,2,3,4,5][6,7,8,9,10][130]