Функция absolute
Функция absolute поэлементно вычисляет абсолютное значение
для каждого элемента тензора. Эта функция является псевдонимом
для функции abs. Первым параметром функция принимает тензор,
вторым параметром можно указать тип данных результата.
Функция возвращает новый тензор с абсолютными значениями.
Синтаксис
torch.absolute(input, [dtype])
Пример
Давайте создадим тензор с отрицательными и положительными числами и вычислим его абсолютные значения:
import torch
t = torch.tensor([-5, -2, 0, 3, 8])
res = torch.absolute(t)
print(res)
Результат выполнения кода:
tensor([5, 2, 0, 3, 8])
Пример
Функция absolute также работает с числами с плавающей точкой.
Давайте создадим тензор с отрицательными числами типа float:
import torch
t = torch.tensor([-1.5, -0.0, 2.3, -4.7], dtype=torch.float)
res = torch.absolute(t)
print(res)
Результат выполнения кода:
tensor([1.5000, 0.0000, 2.3000, 4.7000])
Пример
Функцию absolute можно использовать в качестве метода тензора.
Результат будет идентичен вызову функции из модуля torch:
import torch
t = torch.tensor([-10, -5, 0, 5, 10])
res = t.absolute()
print(res)
Результат выполнения кода:
tensor([10, 5, 0, 5, 10])
Пример
Вторым параметром можно указать желаемый тип данных результата.
Например, преобразуем целочисленный тензор в тензор типа float:
import torch
t = torch.tensor([-3, -1, 0, 2, 4])
res = torch.absolute(t, dtype=torch.float)
print(res)
Результат выполнения кода:
tensor([3., 1., 0., 2., 4.])
Пример
Функция absolute отлично работает с двумерными тензорами.
Она применяется ко всем элементам независимо от их размерности:
import torch
t = torch.tensor([
[-1, 2, -3],
[4, -5, 6],
])
res = torch.absolute(t)
print(res)
Результат выполнения кода:
tensor([
[1, 2, 3],
[4, 5, 6],
])
Пример
Функция absolute сохраняет градиенты при использовании
в процессе обучения нейронных сетей. Давайте посмотрим, как
вычисляется градиент от модуля:
import torch
torch.manual_seed(0)
t = torch.tensor([-2.0, 3.0], requires_grad=True)
res = torch.absolute(t)
res.sum().backward()
print(t.grad)
Результат выполнения кода:
tensor([-1., 1.])