我想使用 Keras 合并两个 CNN 深度学习模型,想知道用于合并层的乘法和点函数有什么区别?
keras.layers.multiply(inputs)
keras.layers.dot(inputs, axes, normalize=False)
我想使用 Keras 合并两个 CNN 深度学习模型,想知道用于合并层的乘法和点函数有什么区别?
keras.layers.multiply(inputs)
keras.layers.dot(inputs, axes, normalize=False)
该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]