torch.logsumexp
- torch.logsumexp(input, dim, keepdim=False, *, out=None)
-
在给定维度
dim
上,返回input
张量中每行指数值之和的对数。该计算过程是数值稳定的。对于由dim确定的求和索引$j$以及其他索引$i$,结果为
$\text{logsumexp}(x)_{i} = \log \sum_j \exp(x_{ij})$如果
keepdim
是True
,则输出张量与输入张量大小相同,除了在dim
指定的维度上其大小为 1。否则,dim
维度会被挤压(参见torch.squeeze()
),导致输出张量比输入少 1 (或len(dim)
)个维度。- 参数
- 关键字参数
-
out (Tensor, 可选) – 指定输出张量。
示例:
>>> 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)