torch.addr — PyTorch 2.7 documentation (original) (raw)

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

Performs the outer-product of vectors vec1 and vec2and adds it to the matrix input.

Optional values beta and alpha are scaling factors on the outer product between vec1 and vec2 and the added matrixinput respectively.

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

If beta is 0, then the content of input will be ignored, and nan and inf in it will not be propagated.

If vec1 is a vector of size n and vec2 is a vector of size m, then input must bebroadcastable with a matrix of size(n×m)(n \times m) and out will be a matrix of size(n×m)(n \times m).

Parameters

Keyword Arguments

Example:

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