Fonction torch.logcumsumexp de PyTorch
Manuel de référence PyTorch torch
torch.logcumsumexpest une fonction de PyTorch utilisée pour calculer le logarithme de la somme cumulée des exponentielles. Elle applique d'abord l'exponentielle aux éléments, puis effectue une somme cumulée, et enfin prend le logarithme, ce qui permet d'éviter un débordement numérique.
Définition de fonction
torch.logcumsumexp(input, dim)
Description des paramètres :
input: tenseur d'entréedim: la dimension pour la somme cumulée
Exemple d'utilisation
Exemple
import torch
# Créer un tenseur
x = torch.tensor([1.0, 2.0, 3.0])
# Calculer le logarithme de la somme cumulée des exponentielles
y = torch.logcumsumexp(x, dim=0)
print(y)
# Créer un tenseur
x = torch.tensor([1.0, 2.0, 3.0])
# Calculer le logarithme de la somme cumulée des exponentielles
y = torch.logcumsumexp(x, dim=0)
print(y)
Le résultat de sortie est:
tensor([1.0000, 2.3133, 3.1000])
Exemple
import torch
# Vérifier : 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)
# Comparer avec le calcul direct
import math
direct = math.log(math.exp(1) + math.exp(2))
print("logcumsumexp:", y[1].item())
print("direct:", direct)
# Vérifier : 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)
# Comparer avec le calcul direct
import math
direct = math.log(math.exp(1) + math.exp(2))
print("logcumsumexp:", y[1].item())
print("direct:", direct)
Le résultat de sortie est:
logcumsumexp: 2.313261505126953 direct: 2.313261505126953
Autres extensions