torch.linalg.matrix_rank
-
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), то относительная погрешность устанавливается в , и — значение epsilon для типа данных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/2.1/generated/torch.linalg.matrix_rank.html