评价此页

torch.addr#

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

将向量 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) 的矩阵。

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

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

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

关键字参数
  • beta (Number, optional) – input 的乘数(β\beta

  • alpha (Number, optional) – vec1vec2\text{vec1} \otimes \text{vec2} 的乘数(α\alpha

  • out (Tensor, optional) – 输出张量。

示例

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