mars.tensor.vdot#

mars.tensor.vdot(a, b)[来源]#

返回两个向量的点积。

vdot(a, b) 函数处理复数与 dot(a, b) 不同。如果第一个参数是复数,则使用第一个参数的共轭复数来计算点积。

请注意,vdot 对多维张量的处理方式与 dot 不同:它执行矩阵乘法,而是先将输入参数展平为 1-D 向量。因此,它应仅用于向量。

Parameters
  • a (array_like) – 如果 a 是复数,计算点积之前会取复共轭。

  • b (array_like) – 点积的第二个参数。

Returns

输出ab 的点积。可以是整数、浮点数或复数,具体取决于ab 的类型。

Return type

张量

另请参阅

dot

返回点积,而不使用第一个参数的复共轭。

示例

>>> import mars.tensor as mt
>>> a = mt.array([1+2j,3+4j])
>>> b = mt.array([5+6j,7+8j])
>>> mt.vdot(a, b).execute()
(70-8j)
>>> mt.vdot(b, a).execute()
(70+8j)

请注意,更高维度的数组会被压平!

>>> a = mt.array([[1, 4], [5, 6]])
>>> b = mt.array([[4, 1], [2, 2]])
>>> mt.vdot(a, b).execute()
30
>>> mt.vdot(b, a).execute()
30
>>> 1*4 + 4*1 + 5*2 + 6*2
30