Функция PyTorch torch.logcumsumexp
Справочное руководство PyTorch torch
torch.logcumsumexpявляется функцией в PyTorch, используемой для вычисления логарифма кумулятивной суммы экспонент. Сначала она вычисляет экспоненту элементов, затем выполняет кумулятивное суммирование и, наконец, берёт логарифм, что позволяет избежать численного переполнения.
Определение функции
torch.logcumsumexp(input, dim)
Описание параметров:
input: входной тензорdim: размерность для кумулятивного суммирования
Пример использования
Пример
import torch
# Создать тензор
x = torch.tensor([1.0, 2.0, 3.0])
# Вычислить логарифм кумулятивной суммы экспонент
y = torch.logcumsumexp(x, dim=0)
print(y)
# Создать тензор
x = torch.tensor([1.0, 2.0, 3.0])
# Вычислить логарифм кумулятивной суммы экспонент
y = torch.logcumsumexp(x, dim=0)
print(y)
Результат вывода:
tensor([1.0000, 2.3133, 3.1000])
Пример
import torch
# Проверка: 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)
# Сравнить с прямым вычислением
import math
direct = math.log(math.exp(1) + math.exp(2))
print("logcumsumexp:", y[1].item())
print("прямой:", direct)
# Проверка: 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)
# Сравнить с прямым вычислением
import math
direct = math.log(math.exp(1) + math.exp(2))
print("logcumsumexp:", y[1].item())
print("прямой:", direct)
Результат вывода:
logcumsumexp: 2.313261505126953 direct: 2.313261505126953
Другие расширения