torch.svd_lowrank
-
torch.svd_lowrank(A, q=6, niter=2, M=None)[source] -
Возвращает сингулярное разложение
(U, S, V)матрицы, пакета матриц или разреженной матрицы , такое что . Если задана , то сингулярное разложение вычисляется для матрицы .Примечание
Реализация основана на алгоритме 5.1 из работы Halko et al., 2009.
Примечание
Для достаточно точного приближения матрицы ранга k , если k заранее неизвестно, но может быть оценено, количество столбцов , q, можно выбрать по следующим критериям: как правило, . Для больших матриц низкого ранга используйте . Если k относительно мало по сравнению с , может быть достаточно выбрать .
Примечание
Это рандомизированный метод. Чтобы получать воспроизводимые результаты, задайте начальное значение для генератора псевдослучайных чисел.
Примечание
Как правило, для плотных матриц используйте реализацию полнорангового SVD
torch.linalg.svd(), поскольку она работает в 10 раз быстрее. SVD низкого ранга пригодится для огромных разреженных матриц, с которыми не справляетсяtorch.linalg.svd().- Аргументы::
-
A (Tensor): входной тензор размера
q (int, optional): слегка завышенная оценка ранга A.
- niter (int, optional): количество итераций в подпространстве для
-
выполнения; niter должно быть неотрицательным целым числом, значение по умолчанию — 2
- M (Tensor, optional): среднее значение входного тензора размером
-
, которое в этой функции будет расширено до размера A.
- Ссылки::
-
- Nathan Halko, Per-Gunnar Martinsson и Joel Tropp, Finding structure with randomness: probabilistic algorithms for constructing approximate matrix decompositions, arXiv:0909.4061 [math.NA; math.PR], 2009 (доступно на arXiv).
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.svd_lowrank.html