Rate this Page

torch.logsumexp#

torch.logsumexp(input,dim,keepdim=False,*,out=None)#

Returns the log of summed exponentials of each row of theinputtensor in the given dimensiondim. The computation is numericallystabilized.

For summation indexjj given bydim and other indicesii, the result is

logsumexp(x)i=logjexp(xij)\text{logsumexp}(x)_{i} = \log \sum_j \exp(x_{ij})

Ifkeepdim isTrue, the output tensor is of the same sizeasinput except in the dimension(s)dim where it is of size 1.Otherwise,dim is squeezed (seetorch.squeeze()), resulting in theoutput tensor having 1 (orlen(dim)) fewer dimension(s).

Parameters
  • input (Tensor) – the input tensor.

  • dim (int ortuple ofints) – the dimension or dimensions to reduce.

  • keepdim (bool,optional) – whether the output tensor hasdim retained or not. Default:False.

Keyword Arguments

out (Tensor,optional) – the output tensor.

Example:

>>>a=torch.randn(3,3)>>>torch.logsumexp(a,1)tensor([1.4907, 1.0593, 1.5696])>>>torch.dist(torch.logsumexp(a,1),torch.log(torch.sum(torch.exp(a),1)))tensor(1.6859e-07)