torch.addr

torch.addr(input, vec1, vec2, *, beta=1, alpha=1, out=None) Tensor

计算向量vec1vec2的外积,并将结果添加到矩阵input中。

可选值 betaalpha 分别是向量 vec1vec2 之间外积与矩阵 input 的缩放因子。

$\text{out} = \beta\ \text{input} + \alpha\ (\text{vec1} \otimes \text{vec2})$

如果 beta 为 0,那么 input 将被忽略,并且其中的 naninf 不会被传播。

如果 vec1 是大小为 n 的向量,而 vec2 是大小为 m 的向量,则 input 必须与大小为 $(n \times m)$ 的矩阵进行广播操作。此时,out 将是一个大小为 $(n \times m)$ 的矩阵。

参数
  • input (Tensor) – 需要添加的矩阵

  • vec1 (Tensor) – 第一个参与外积运算的向量

  • vec2 (Tensor) – 第二个参与外积运算的向量

关键字参数
  • beta (数字, 可选) – input 的乘数 ($\beta$)

  • alpha (Number, optional) – 用于 $\text{vec1} \otimes \text{vec2}$ 的乘数 ($\alpha$)

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

示例:

>>> vec1 = torch.arange(1., 4.)
>>> vec2 = torch.arange(1., 3.)
>>> M = torch.zeros(3, 2)
>>> torch.addr(M, vec1, vec2)
tensor([[ 1.,  2.],
        [ 2.,  4.],
        [ 3.,  6.]])
本页目录