torch.linalg.matrix_ранг
-
torch.linalg.matrix_rank(A, *, atol=None, rtol=None, hermitian=False, out=None) → Tensor -
Вычисляет числовой ранг матрицы.
Ранг матрицы вычисляется как количество сингулярных значений (или собственных значений по модулю, когда
hermitian= True) превышающих порог , где — наибольшее сингулярное значение (или собственное значение).Поддерживает входные типы float, double, cfloat и cdouble. Также поддерживает пакеты матриц, и если
A— пакет матриц, то выходные данные имеют те же размерности пакета.Если
hermitian= True,Aпредполагается эрмитовой, если комплексной, или симметричной, если вещественной, но это не проверяется внутри. Вместо этого используется только нижняя треугольная часть матрицы в вычислениях.Если
rtolне указан иA— матрица размерностей(m, n), относительная погрешность устанавливается в и — значение эпсилон для типаA(см.finfo). Еслиrtolне указан, аatolуказан больше нуля, тоrtolустанавливается в ноль.Если
atolилиrtol—torch.Tensor, её размерность должна быть совместима с размерностью сингулярных значенийA, возвращаемыхtorch.linalg.svdvals().Примечание
Эта функция имеет аналог NumPy
linalg.matrix_rank(A, tol, hermitian=False). Однако использование позиционного аргументаtolустарело в пользуatolиrtol.Примечание
Ранг матрицы вычисляется с помощью разложения по сингулярным значениям
torch.linalg.svdvals()еслиhermitian= False(по умолчанию) и с помощью разложения по собственным значениямtorch.linalg.eigvalsh()приhermitian= True. Когда входные данные находятся на устройстве CUDA, эта функция синхронизирует это устройство с процессором.- Параметры:
- Ключевые аргументы:
-
-
atol (float, Тензор, необязательно) – абсолютное значение погрешности. При
Noneсчитается равным нулю. По умолчанию:None. -
rtol (float, Тензор, необязательно) – относительное значение погрешности. См. выше для значения, когда
None. По умолчанию:None. -
hermitian (bool) – указывает, является ли
Aэрмитовой, если комплексной, или симметричной, если вещественной. По умолчанию:False. -
out (Тензор, необязательно) – выходной тензор. Игнорируется, если
None. По умолчанию:None.
-
atol (float, Тензор, необязательно) – абсолютное значение погрешности. При
Примеры:
>>> A = torch.eye(10) >>> torch.linalg.matrix_rank(A) tensor(10) >>> B = torch.eye(10) >>> B[0, 0] = 0 >>> torch.linalg.matrix_rank(B) tensor(9) >>> A = torch.randn(4, 3, 2) >>> torch.linalg.matrix_rank(A) tensor([2, 2, 2, 2]) >>> A = torch.randn(2, 4, 2, 3) >>> torch.linalg.matrix_rank(A) tensor([[2, 2, 2, 2], [2, 2, 2, 2]]) >>> A = torch.randn(2, 4, 3, 3, dtype=torch.complex64) >>> torch.linalg.matrix_rank(A) tensor([[3, 3, 3, 3], [3, 3, 3, 3]]) >>> torch.linalg.matrix_rank(A, hermitian=True) tensor([[3, 3, 3, 3], [3, 3, 3, 3]]) >>> torch.linalg.matrix_rank(A, atol=1.0, rtol=0.0) tensor([[3, 2, 2, 2], [1, 2, 1, 2]]) >>> torch.linalg.matrix_rank(A, atol=1.0, rtol=0.0, hermitian=True) tensor([[2, 2, 2, 1], [1, 2, 2, 2]])
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.linalg.matrix_rank.html