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с помощью числово устойчивого алгоритма.- Parameters:
-
A (Tensor) – тензор формы
(*, n, n), где*— ноль или более размерностей пакета, состоящие из обратимых матриц. - Keyword Arguments:
-
out (Tensor, optional) – выходной тензор. Игнорируется, если
None. По умолчанию:None. - Raises:
-
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/1.13/generated/torch.linalg.inv.html