评价此页

torch.logsumexp#

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

返回输入张量在给定维度 dim 上每行的指数之和的对数。此计算经过数值稳定性处理。

对于由 dim 和其他索引 ii 指定的求和索引 jj,结果为:

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)