Функция atan2
Функция atan2 вычисляет арктангенс отношения элементов тензора input (числитель) к элементам тензора other (знаменатель) с учётом знаков обеих величин. Результат - угол в радианах, лежащий в диапазоне от -π до π включительно. Первым параметром передаётся тензор числителей, вторым - тензор знаменателей. Функция поддерживает вещание (broadcasting) и работает с элементами поэлементно.
Синтаксис
torch.atan2(input, other, out=None)
Пример
Рассмотрим базовый пример использования функции atan2 для двух одномерных тензоров:
import torch
t1 = torch.tensor([1.0, 0.0, -1.0])
t2 = torch.tensor([1.0, 1.0, -1.0])
res = torch.atan2(t1, t2)
print(res)
Результат выполнения кода:
tensor([ 0.7854, 0.0000, -2.3562])
Пример
Давайте вычислим углы для нескольких точек на плоскости, заданных координатами x и y:
import torch
x = torch.tensor([1.0, 0.0, -1.0, 0.0])
y = torch.tensor([0.0, 1.0, 0.0, -1.0])
angles = torch.atan2(y, x)
print(angles)
Результат выполнения кода:
tensor([ 0.0000, 1.5708, 3.1416, -1.5708])
Пример
Продемонстрируем работу вещания: скалярное значение применяется ко всем элементам тензора:
import torch
t = torch.tensor([1.0, 2.0, 3.0])
res = torch.atan2(t, 1.0)
print(res)
Результат выполнения кода:
tensor([0.7854, 1.1071, 1.2490])
Пример
Теперь рассмотрим работу функции с двумерными тензорами:
import torch
t1 = torch.tensor([
[1.0, 2.0],
[3.0, 4.0]
])
t2 = torch.tensor([
[4.0, 3.0],
[2.0, 1.0]
])
res = torch.atan2(t1, t2)
print(res)
Результат выполнения кода:
tensor([
[0.2450, 0.5880],
[0.9828, 1.3258]
])