mindspore.ops.addmv

View Source On Gitee
mindspore.ops.addmv(input, mat, vec, *, beta=1, alpha=1)[source]

Multiplies matrix mat and vector vec. The vector input is added to the final result.

If mat is a (N,M) tensor, vec is a 1-D tensor of size M, then input must be broadcastable with a 1-D tensor of size N.In this case out will be 1-D tensor of size N.

The optional values beta and alpha are the matrix-vector product between mat and vec and the scale factor for the added Tensor input respectively. If beta is 0, then input will be ignored.

output=βinput+α(mat@vec)
Parameters
  • input (Tensor) – Vector to be added. The shape of the tensor is (N,).

  • mat (Tensor) – The first tensor to be multiplied. The shape of the tensor is (N,M).

  • vec (Tensor) – The second tensor to be multiplied. The shape of the tensor is (M,).

Keyword Arguments
  • beta (scalar[int, float, bool], optional) – Multiplier for input (β). The beta must be int or float or bool. Default: 1 .

  • alpha (scalar[int, float, bool], optional) – Multiplier for mat @ vec (α). The alpha must be int or float or bool. Default: 1 .

Returns

Tensor, the shape of the output tensor is (N,), has the same dtype as input.

Raises
  • TypeError – If mat, vec, input is not a Tensor.

  • TypeError – If inputs mat, vec are not the same dtype.

  • ValueError – If mat is not a 2-D Tensor.

  • ValueError – If vec is not a 1-D Tensor.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> 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 = ops.addmv(input, mat, vec)
>>> print(output)
[30. 27.]