mindspore.ops.addr
- mindspore.ops.addr(x, vec1, vec2, *, beta=1, alpha=1)[source]
Computes the outer product of two vector vec1 and vec2, and adds the resulting matrix to x.
Given vec1 and vec2 of sizes \(N\) and \(M\), x must be able to broadcast to a matrix of shape \((N, M)\).
beta and alpha are optional scaling factors for the outer product of vec1 and vec2, and the matrix x respectively. Setting beta to 0 will exclude x from the computation.
\[output = β x + α (vec1 ⊗ vec2)\]- Parameters
- Keyword Arguments
- Returns
Tensor, the shape of the output tensor is \((N, M)\), has the same dtype as x.
- Raises
TypeError – If x, vec1, vec2 is not a Tensor.
TypeError – If inputs vec1, vec2 are not the same dtype.
ValueError – If vec1, vec2 is not a 1-D Tensor.
- Supported Platforms:
Ascend
GPU
CPU
Examples
>>> import numpy as np >>> from mindspore import Tensor, ops >>> x = Tensor(np.array([[2., 2.], [3., 2.], [3., 4.]], np.float32)) >>> vec1 = Tensor(np.array([2., 3., 2.], np.float32)) >>> vec2 = Tensor(np.array([3, 4], np.float32)) >>> output = ops.addr(x, vec1, vec2) >>> print(output) [[ 8. 10.] [12. 14.] [ 9. 12.]]