PyTorch torch.logcumsumexp-Funktion


Pytorch torch 参考手册PyTorch torch-Referenzhandbuch

torch.logcumsumexpist eine Funktion in PyTorch, die verwendet wird, um den Logarithmus der kumulativen Summe von Exponentialwerten zu berechnen. Sie potenziert zuerst die Elemente, führt dann eine kumulative Summe durch und bildet schließlich den Logarithmus, wodurch numerischer Überlauf vermieden werden kann.

Funktionsdefinition

torch.logcumsumexp(input, dim)

Parameterbeschreibung:

  • input: Eingabetensor
  • dim: die Dimension für die kumulative Summierung

Anwendungsbeispiel

Beispiel

import torch

# Tensor erstellen
x = torch.tensor([1.0, 2.0, 3.0])

# Berechne den Logarithmus der kumulativen Summe der Exponentialwerte
y = torch.logcumsumexp(x, dim=0)
print(y)

Das Ausgabeergebnis ist:

tensor([1.0000, 2.3133, 3.1000])

Beispiel

import torch

# Überprüfen: log(exp(1) + exp(2)) = log(exp(1) + exp(2))
# log(e^1 + e^2) = log(e^1 + e^2) ≈ 2.3133
x = torch.tensor([1.0, 2.0])
y = torch.logcumsumexp(x, dim=0)

# Vergleich mit direkter Berechnung
import math
direct = math.log(math.exp(1) + math.exp(2))
print("logcumsumexp:", y[1].item())
print("direkt:", direct)

Das Ausgabeergebnis ist:

logcumsumexp: 2.313261505126953
direct: 2.313261505126953

Pytorch torch 参考手册PyTorch torch-Referenzhandbuch

Andere Erweiterungen