mindspore.mint.addmv

查看源文件
mindspore.mint.addmv(input, mat, vec, *, beta=1, alpha=1)[源代码]

matvec 矩阵向量相乘,且将输入向量 input 加到最终结果中。

如果 mat 是一个大小为 \((N, M)\) Tensor, vec 是一个大小为 \(M\) 的一维Tensor,那么 input 必须可广播到一个大小为 \(N\) 的一维Tensor。这种情况下 output 是一个大小为 \(N\) 的一维Tensor。

\[output = \beta input + \alpha (mat @ vec)\]

警告

这是一个实验性API,后续可能修改或删除。

参数:
  • input (Tensor) - 被加的向量。

  • mat (Tensor) - 第一个需要相乘的Tensor。

  • vec (Tensor) - 第二个需要相乘的Tensor。

关键字参数:
  • beta (Union[float, int], 可选) - 输入的系数。默认值: 1

  • alpha (Union[float, int],可选) - \(mat @ vec\) 的系数。默认值: 1

返回:

Tensor,shape大小为 \((N,)\) ,其数据类型与 input 相同。

异常:
  • TypeError - inputmatvec 不是Tensor。

  • TypeError - matvec 数据类型不一致。

  • ValueError - mat 不是二维Tensor。

  • ValueError - vec 不是一维Tensor。

支持平台:

Ascend

样例:

>>> import numpy as np
>>> from mindspore import Tensor, mint
>>> input = Tensor(np.array([2., 3.]).astype(np.float32))
>>> mat = Tensor(np.array([[2., 5., 3.], [4., 2., 2.]]).astype(np.float32))
>>> vec = Tensor(np.array([3., 2., 4.]).astype(np.float32))
>>> output = mint.addmv(input, mat, vec)
>>> print(output)
[30. 27.]