Функция asin
Функция asin применяется к тензору и возвращает новый тензор,
содержащий арксинус каждого элемента исходного тензора.
Входные значения должны находиться в диапазоне [-1, 1],
иначе результатом будет nan (не число).
Функция поддерживает автоматическое дифференцирование, что делает
ее полезной при построении нейросетей.
Синтаксис
torch.asin(input, *, out=None)
Параметры функции:
input - входной тензор, элементы которого должны быть в пределах [-1, 1].
out (опционально) - выходной тензор для записи результата.
Пример 1. Базовое использование
Вычислим арксинус для значений от -1 до 1 с шагом 0.5:
import torch
t = torch.tensor([-1.0, -0.5, 0.0, 0.5, 1.0])
res = torch.asin(t)
print(res)
Результат выполнения кода:
tensor([-1.5708, -0.5236, 0.0000, 0.5236, 1.5708])
Пример 2. Работа с целыми числами
Если входной тензор содержит целые числа, они автоматически преобразуются в вещественные перед вычислением:
import torch
t = torch.tensor([0, 1])
res = torch.asin(t)
print(res)
Результат выполнения кода:
tensor([0.0000, 1.5708])
Пример 3. Значения вне допустимого диапазона
При передаче значений за пределами [-1, 1] функция возвращает nan:
import torch
t = torch.tensor([-1.5, 0.0, 1.5])
res = torch.asin(t)
print(res)
Результат выполнения кода:
tensor([ nan, 0.0000, nan])
Пример 4. Использование с градиентами
Функция поддерживает автоматическое дифференцирование, что позволяет использовать ее в нейросетевых архитектурах:
import torch
t = torch.tensor([0.5, -0.3], requires_grad=True)
res = torch.asin(t)
loss = res.sum()
loss.backward()
print(t.grad)
Результат выполнения кода:
tensor([1.1547, 1.0483])