torch.addcdiv

torch.addcdiv(input, tensor1, tensor2, *, value=1, out=None) Tensor

tensor1tensor2进行逐元素除法运算,然后将结果乘以标量value,最后加到input上。

警告

使用addcdiv进行整数除法不再被支持,并且在未来版本中,addcdiv将执行tensor1和tensor2的真实除法。历史上,对于整数输入的addcdiv行为可以通过(input + value * torch.trunc(tensor1 / tensor2)).to(input.dtype)来实现;而对于浮点数输入,则可以使用(input + value * tensor1 / tensor2)。未来的addcdiv行为将统一为后者:(input + value * tensor1 / tensor2),适用于所有数据类型。

$\text{out}_i = \text{input}_i + \text{value} \times \frac{\text{tensor1}_i}{\text{tensor2}_i}$

必须使inputtensor1tensor2 的形状成为可广播的

当输入类型为FloatTensorDoubleTensor时,value必须是实数;否则,它必须是整数。

参数
  • input (Tensor) – 需要添加的张量

  • tensor1 (Tensor) – 作为分子的张量

  • tensor2 (Tensor) – 作为分母的张量

关键字参数
  • value (Number, 可选) - $\text{tensor1} / \text{tensor2}$ 的系数

  • out (Tensor, 可选) – 指定输出张量。

示例:

>>> t = torch.randn(1, 3)
>>> t1 = torch.randn(3, 1)
>>> t2 = torch.randn(1, 3)
>>> torch.addcdiv(t, t1, t2, value=0.1)
tensor([[-0.2312, -3.6496,  0.1312],
        [-1.0428,  3.4292, -0.1030],
        [-0.5369, -0.9829,  0.0430]])
本页目录