評價此頁

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)