torch.addr
- torch.addr(input, vec1, vec2, *, beta=1, alpha=1, out=None) → Tensor
-
计算向量
vec1
和vec2
的外积,并将结果添加到矩阵input
中。可选值
beta
和alpha
分别是向量vec1
和vec2
之间外积与矩阵input
的缩放因子。$\text{out} = \beta\ \text{input} + \alpha\ (\text{vec1} \otimes \text{vec2})$如果
beta
为 0,那么input
将被忽略,并且其中的 nan 和 inf 不会被传播。如果
vec1
是大小为 n 的向量,而vec2
是大小为 m 的向量,则input
必须与大小为 $(n \times m)$ 的矩阵进行广播操作。此时,out
将是一个大小为 $(n \times m)$ 的矩阵。- 参数
- 关键字参数
-
-
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.]])