torch.addr¶
- torch.addr(input, vec1, vec2, *, beta=1, alpha=1, out=None) Tensor ¶
Performs the outer-product of vectors
vec1
andvec2
and adds it to the matrixinput
.Optional values
beta
andalpha
are scaling factors on the outer product betweenvec1
andvec2
and the added matrixinput
respectively.\[\text{out} = \beta\ \text{input} + \alpha\ (\text{vec1} \otimes \text{vec2}) \]If
beta
is 0, theninput
will be ignored, and nan and inf in it will not be propagated.If
vec1
is a vector of size n andvec2
is a vector of size m, theninput
must be broadcastable with a matrix of size \((n \times m)\) andout
will be a matrix of size \((n \times m)\).- Parameters:
- Keyword Arguments:
beta (Number, optional) – multiplier for
input
(\(\beta\))alpha (Number, optional) – multiplier for \(\text{vec1} \otimes \text{vec2}\) (\(\alpha\))
out (Tensor, optional) – the output tensor.
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.]])