maxframe.tensor.vdot#

maxframe.tensor.vdot(a, b)[源代码]#

返回两个向量的点积。

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

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

参数:
  • a (array_like) -- 如果 a 是复数,则在计算点积前取其复共轭。

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

返回:

output -- ab 的点积。根据 ab 的类型,可以是 int、float 或 complex。

返回类型:

Tensor

参见

dot

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

示例

>>> import maxframe.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