评价此页

torch.logsumexp#

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

返回给定维度 diminput 张量中每行的指数和的对数。此计算经过数值稳定化处理。

对于由 dim 给出的求和索引 jj 和其他索引 ii,结果为

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

如果 keepdimTrue,则输出张量的大小与 input 相同,只有在 dim 维度上大小为 1。否则,dim 将被挤压(参见 torch.squeeze()),导致输出张量维度减少 1(或 len(dim))个。

参数
  • input (Tensor) – 输入张量。

  • dim (inttuple of ints) – 要减少的维度或维度。

  • keepdim (bool, optional) – 输出张量是否保留 dim。默认为 False

关键字参数

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

示例

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