Функция acos
Функция acos вычисляет арккосинус (обратную тригонометрическую функцию к косинусу) для каждого элемента входного тензора. Она принимает на вход тензор, значения которого должны находиться в диапазоне от -1 до 1, и возвращает новый тензор с углами в радианах. Результат лежит в интервале от 0 до π. Функция поддерживает автоматическое дифференцирование.
Синтаксис
torch.acos(input, *, out=None)
Параметр input - это входной тензор. Ключевой параметр out позволяет указать тензор для записи результата. Функция возвращает новый тензор, содержащий арккосинусы элементов входного тензора.
Пример
Вычислим арккосинус для нескольких значений из допустимого диапазона:
import torch
t = torch.tensor([-1.0, -0.5, 0.0, 0.5, 1.0])
res = torch.acos(t)
print(res)
Результат выполнения кода:
tensor([3.1416, 2.0944, 1.5708, 1.0472, 0.0000])
Пример
Используем арккосинус для вычисления углов из значений косинуса в градусах. Для перевода радианов в градусы используем константу pi:
import torch
t = torch.tensor([1.0, 0.7071, 0.0, -0.7071, -1.0])
rad = torch.acos(t)
deg = rad * 180 / torch.pi
print(deg)
Результат выполнения кода:
tensor([0.0000, 45.0046, 90.0000, 134.9954, 180.0000])
Заметим, что значения углов в градусах приближены из-за округления входных данных.
Пример
Вычислим арккосинус для элементов двумерного тензора:
import torch
t = torch.tensor([
[0.0, 0.5, 1.0],
[-1.0, -0.5, 0.0],
])
res = torch.acos(t)
print(res)
Результат выполнения кода:
tensor([
[1.5708, 1.0472, 0.0000],
[3.1416, 2.0944, 1.5708],
])
Пример
Используем параметр out для сохранения результата в предварительно выделенный тензор:
import torch
t = torch.tensor([0.0, 0.25, 0.5, 0.75, 1.0])
out_t = torch.empty(5)
torch.acos(t, out=out_t)
print(out_t)
Результат выполнения кода:
tensor([1.5708, 1.3181, 1.0472, 0.7227, 0.0000])