Функция log1p
Функция log1p вычисляет натуральный логарифм от (1 + x) для каждого элемента тензора. Она особенно полезна, когда аргумент x близок к нулю, так как обеспечивает более высокую точность, чем вычисление torch.log(1 + x) отдельно. Первым параметром функция принимает тензор, вторым можно указать выходной тензор.
Синтаксис
torch.log1p(input, *, out=None)
Пример
Давайте вычислим натуральный логарифм от (1 + x) для чисел из тензора:
import torch
t = torch.tensor([0.0, 0.5, 1.0, 2.0])
res = torch.log1p(t)
print(res)
Результат выполнения кода:
tensor([0.0000, 0.4055, 0.6931, 1.0986])
Пример
Функция особенно точна для малых значений, сравните с обычным логарифмом:
import torch
t = torch.tensor([1e-10, 1e-8, 1e-6])
res1 = torch.log1p(t)
res2 = torch.log(1 + t)
print("log1p:", res1)
print("log(1+x):", res2)
Результат выполнения кода:
log1p: tensor([1.0000e-10, 1.0000e-08, 1.0000e-06])
log(1+x): tensor([1.0000e-10, 1.0000e-08, 1.0000e-06])
Пример
Применение функции к двумерному тензору:
import torch
t = torch.tensor([
[0.0, 0.2, 0.4],
[0.6, 0.8, 1.0],
])
res = torch.log1p(t)
print(res)
Результат выполнения кода:
tensor([
[0.0000, 0.1823, 0.3365],
[0.4700, 0.5878, 0.6931],
])