addcmul

paddle.fluid.layers.addcmul(input, tensor1, tensor2, value=1.0, out=None, name=None)[源代码]

计算tensor1和tensor2的逐元素乘积,然后将结果乘以标量value,再加到input上输出。其中input, tensor1, tensor2的维度必须是可广播的。

计算过程的公式为: .. math:

  1. out = input + value * tensor1 * tensor2

参数

  • input (Variable) : 输入Tensor input,数据类型支持float32, float64, int32, int64。
  • itensor1 (Variable) : 输入Tensor tensor1,数据类型支持float32, float64, int32, int64。
  • itensor2 (Variable) : 输入Tensor tensor2,数据类型支持float32, float64, int32, int64。
  • value (int|float) : 乘以tensor1*tensor2的标量。如果输入input类型为float32或float64,value类型必须为float,如果输入input类型为int32或int64,value类型必须为int。
  • out (Variable, 可选) – 指定存储运算结果的Tensor。如果设置为None或者不设置,将创建新的Tensor存储运算结果,默认值为None。
  • name (str,可选)- 具体用法请参见 Name ,一般无需设置,默认值为None。

返回

计算得到的Tensor。Tensor数据类型与输入input数据类型一致。

返回类型

变量(Variable)

代码示例

  1. import paddle
  2. import paddle.fluid as fluid
  3. input = fluid.data(name='input', dtype='float32', shape=[3, 4])
  4. tensor1 = fluid.data(name='tenosr1', dtype='float32', shape=[1, 4])
  5. tensor2 = fluid.data(name='tensor2', dtype='float32', shape=[3, 4])
  6. data = fluid.layers.addcmul(input, tensor1, tensor2, value=1.0)