torch.addmv

torch.addmv(input, mat, vec, *, beta=1, alpha=1, out=None) → Tensor

计算矩阵 mat 和向量 vec 的矩阵-向量乘法,并将向量 input 加到最终结果中。

如果 mat 是一个 $(n \times m)$ 张量,而 vec 是大小为 m 的一维张量,则 input 必须与大小为 n 的一维张量进行广播操作,并且 out 将是一个大小为 n 的一维张量。

alphabeta 分别是矩阵向量乘积(matvec之间的乘积)与张量input的比例因子。

$\text{out} = \beta\ \text{input} + \alpha\ (\text{mat} \mathbin{@} \text{vec})$

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

对于类型为FloatTensorDoubleTensor的输入,参数betaalpha必须是实数;如果不是这些类型,则它们应该是整数。

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

  • mat (张量) – 需要进行矩阵乘法的矩阵

  • vec (Tensor) – 进行矩阵乘法的向量

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

  • alpha (Number, optional) – 用于 $mat @ vec$ 的乘数 ($\alpha$)

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

示例:

>>> M = torch.randn(2)
>>> mat = torch.randn(2, 3)
>>> vec = torch.randn(3)
>>> torch.addmv(M, mat, vec)
tensor([-0.3768, -5.5565])
本页目录