mindspore.ops.addr

查看源文件
mindspore.ops.addr(x, vec1, vec2, *, beta=1, alpha=1)[源代码]

计算 vec1vec2 的外积,并加到 x 中。

说明

  • 如果 vec1 是一个大小为 \(N\) 的向量, vec2 是一个大小为 \(M\) 的向量,则 x 的大小可广播为 。 则 x 必须能够与大小为 \((N, M)\) 的矩阵进行广播,且输出将是大小为 \((N, M)\) 的矩阵。

  • beta 为0,那么 input 将会被忽略。

\[output = β x + α (vec1 ⊗ vec2)\]
参数:
  • x (Tensor) - 输入tensor。

  • vec1 (Tensor) - 将被乘的向量。

  • vec2 (Tensor) - 将被乘的向量。

关键字参数:
  • beta (scalar[int, float, bool], 可选) - x 的尺度因子。默认 1

  • alpha (scalar[int, float, bool], 可选) - ( vec1vec2 )的尺度因子。默认 1

返回:

Tensor

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> x = mindspore.tensor([[2., 2.], [3., 2.], [3., 4.]])
>>> vec1 = mindspore.tensor([2., 3., 2.])
>>> vec2 = mindspore.tensor([3., 4.])
>>> output = mindspore.ops.addr(x, vec1, vec2)
>>> print(output)
[[ 8. 10.]
 [12. 14.]
 [ 9. 12.]]