torch.linalg.inv
-
torch.linalg.inv(A, *, out=None) → Tensor -
Вычисляет обратную матрицу квадратной матрицы, если она существует. Выбрасывает
RuntimeError, если матрица не обратима.Пусть будет или , для матрицы , её обратная матрица (если она существует) определяется как
где —
n-мерная единичная матрица.Обратная матрица существует тогда и только тогда, когда является обратимой. В этом случае обратная матрица единственна.
Поддерживает входные типы float, double, cfloat и cdouble. Также поддерживает пакетные матрицы, и если
Aявляется пакетом матриц, то выходные данные имеют те же размерности пакета.Примечание
При работе с входными данными на устройстве CUDA эта функция синхронизирует это устройство с процессором.
Примечание
Если возможно, используйте
torch.linalg.solve()для умножения матрицы слева на обратную, как:linalg.solve(A, B) == linalg.inv(A) @ B # When B is a matrix
Всегда предпочтительнее использовать
solve(), так как это быстрее и более числово устойчиво, чем явное вычисление обратной матрицы.См. также
torch.linalg.pinv()вычисляет псевдообратную (обратную по Муру-Пенрозу) матрицы любой формы.torch.linalg.solve()вычисляетA.inv() @Bс помощью численно устойчивого алгоритма.- Параметры
-
A (Tensor) – тензор формы
(*, n, n), где*— ноль или более размерностей пакета, состоящих из обратимых матриц. - Ключевые аргументы
-
out (Tensor, необязательно) – выходной тензор. Игнорируется, если
None. По умолчанию:None. - Возбуждает
-
RuntimeError – если матрица
Aили любая матрица в пакете матрицAнеобратима.
Примеры:
>>> A = torch.randn(4, 4) >>> Ainv = torch.linalg.inv(A) >>> torch.dist(A @ Ainv, torch.eye(4)) tensor(1.1921e-07) >>> A = torch.randn(2, 3, 4, 4) # Batch of matrices >>> Ainv = torch.linalg.inv(A) >>> torch.dist(A @ Ainv, torch.eye(4)) tensor(1.9073e-06) >>> A = torch.randn(4, 4, dtype=torch.complex128) # Complex matrix >>> Ainv = torch.linalg.inv(A) >>> torch.dist(A @ Ainv, torch.eye(4)) tensor(7.5107e-16, dtype=torch.float64)
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.linalg.inv.html