Функция pow
Функция pow выполняет поэлементное возведение в степень. Она может принимать на вход тензор и скаляр, два тензора или тензор и число. В результате возвращается новый тензор, каждый элемент которого возведён в указанную степень. Функция поддерживает автографидирование и работает с тензорами на любых устройствах.
Синтаксис
torch.pow(input, exponent, *, out=None)
где input - исходный тензор, exponent - степень (тензор или число), out - необязательный выходной тензор.
Пример
Возведём тензор в квадрат, передав степень как число:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = torch.pow(t, 2)
print(res)
Результат выполнения кода:
tensor([ 1, 4, 9, 16, 25])
Пример
Возведём элементы одного тензора в степени элементов другого тензора:
import torch
base = torch.tensor([2, 3, 4])
exp = torch.tensor([3, 2, 1])
res = torch.pow(base, exp)
print(res)
Результат выполнения кода:
tensor([ 8, 9, 4])
В этом примере каждый элемент первого тензора возводится в степень соответствующего элемента второго тензора.
Пример
Возведём отрицательные числа в дробную степень. Для этого используем тип torch.float:
import torch
t = torch.tensor([-4, 9, 16], dtype=torch.float)
res = torch.pow(t, 0.5)
print(res)
Результат выполнения кода:
tensor([nan, 3., 4.])
Обратите внимание, что для отрицательного числа результат nan, так как квадратный корень из отрицательного числа не определён в действительных числах.
Пример
Используем метод pow, который вызывается непосредственно у тензора:
import torch
t = torch.tensor([2, 4, 6])
res = t.pow(3)
print(res)
Результат выполнения кода:
tensor([ 8, 64, 216])
Метод pow работает аналогично функции, но вызывается от объекта тензора.