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