mindspore.ops.addcmul

mindspore.ops.addcmul(input, tensor1, tensor2, value=1)[源代码]

执行Tensor tensor1 与Tensor tensor2 的逐元素乘积,将结果乘以标量值 value ,并将其添加到 input 中。

\[output[i] = input[i] + value[i] * (tensor1[i] * tensor2[i])\]
参数:
  • input (Tensor) - 要添加的Tensor。

  • tensor1 (Tensor) - 要乘以的Tensor。

  • tensor2 (Tensor) - 要乘以的Tensor。

  • value (Union[Tensor, Number]) - tensor1 * tensor2的乘数。默认值: 1

返回:

Tensor,具有与tensor1*tensor2相同的shape和dtype。

异常:
  • TypeError - 如果 tensor1tensor2input 不是Tensor。

  • TypeError - 如果 input 的dtype不是:float32、float16、int32之一。

  • TypeError - 如果 tensor1tensor2 的dtype不是:float32、float16、int32之一。

  • TypeError - 如果 value 的dtype不是:float32、float16、int32之一。

  • ValueError - 如果无法将 tensor1 广播到 tensor2

  • ValueError - 如果无法将 value 广播到 tensor1 * tensor2

  • ValueError - 如果无法将 input 广播到 value*(tensor1*tensor2)

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> input_data = Tensor(np.array([1, 1, 1]), mindspore.float32)
>>> x1 = Tensor(np.array([[1], [2], [3]]), mindspore.float32)
>>> x2 = Tensor(np.array([[1, 2, 3]]), mindspore.float32)
>>> value = Tensor([1], mindspore.float32)
>>> y = ops.addcmul(input_data, x1, x2, value)
>>> print(y)
[[ 2.  3.  4.]
 [ 3.  5.  7.]
 [ 4.  7. 10.]]