Función PyTorch torch.logcumsumexp
Manual de referencia de Pytorch torch
torch.logcumsumexpEs una función de PyTorch utilizada para calcular el logaritmo de la suma exponencial acumulativa. Primero aplica exponencial a los elementos, luego calcula la suma acumulativa y finalmente toma el logaritmo, lo que evita el desbordamiento numérico.
Definición de la función
torch.logcumsumexp(input, dim)
Descripción de parámetros:
input: tensor de entradadim: dimensión para la suma acumulativa
Ejemplo de uso
Ejemplo
import torch
# Crear tensor
x = torch.tensor([1.0, 2.0, 3.0])
# Calcular el logaritmo de la suma exponencial acumulativa
y = torch.logcumsumexp(x, dim=0)
print(y)
# Crear tensor
x = torch.tensor([1.0, 2.0, 3.0])
# Calcular el logaritmo de la suma exponencial acumulativa
y = torch.logcumsumexp(x, dim=0)
print(y)
El resultado es:
tensor([1.0000, 2.3133, 3.1000])
Ejemplo
import torch
# Verificar: 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)
# Comparar con el cálculo directo
import math
direct = math.log(math.exp(1) + math.exp(2))
print("logcumsumexp:", y[1].item())
print("direct:", direct)
# Verificar: 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)
# Comparar con el cálculo directo
import math
direct = math.log(math.exp(1) + math.exp(2))
print("logcumsumexp:", y[1].item())
print("direct:", direct)
El resultado es:
logcumsumexp: 2.313261505126953 direct: 2.313261505126953
Otras extensiones