Shortcuts

torch.addr

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

执行向量 vec1vec2 的外积,并将其添加到矩阵 input 中。

可选值 betaalpha 是外积之间 vec1vec2 以及添加的矩阵 input 的缩放因子。

out=β input+α (vec1vec2)\text{out} = \beta\ \text{input} + \alpha\ (\text{vec1} \otimes \text{vec2})

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

如果 vec1 是一个大小为 n 的向量,而 vec2 是一个大小为 m 的向量,那么 input 必须与一个大小为 (n×m)(n \times m) 的矩阵 可广播,并且 out 将是一个大小为 (n×m)(n \times m) 的矩阵。

Parameters
  • 输入 (张量) – 要被添加的矩阵

  • vec1 (张量) – 外积的第一个向量

  • vec2 (张量) – 外积的第二个向量

Keyword Arguments
  • beta (数字, 可选) – input 的乘数 (β\beta)

  • alpha (数字, 可选) – vec1vec2\text{vec1} \otimes \text{vec2} 的乘数 (α\alpha)

  • 输出 (张量, 可选) – 输出张量。

示例:

>>> 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.]])