快捷方式

torch.svd_lowrank

torch.svd_lowrank(A, q=6, niter=2, M=None)[源代码]

返回矩阵、矩阵批次或稀疏矩阵 AA 的奇异值分解 (U, S, V),使得 AUdiag(S)VHA \approx U \operatorname{diag}(S) V^{\text{H}}. 如果给出了 MM,则为矩阵 AMA - M 计算 SVD。

注意

实现基于 Halko 等人 2009 年的算法 5.1。

注意

对于 k 秩矩阵 AA 的充分近似,其中 k 事先未知但可以估计,QQ 列数 q 可以根据以下标准选择:一般情况下,k<=q<=min(2k,m,n)k <= q <= min(2*k, m, n). 对于大型低秩矩阵,取 q=k+5..10q = k + 5..10. 如果 k 相对于 min(m,n)min(m, n) 较小,选择 q=k+0..2q = k + 0..2 可能就足够了。

注意

这是一种随机方法。要获得可重复的结果,请为伪随机数生成器设置种子

注意

一般来说,对于稠密矩阵,由于其性能特点高出 10 倍,请使用全秩 SVD 实现 torch.linalg.svd()。低秩 SVD 将对 torch.linalg.svd() 无法处理的巨大稀疏矩阵很有用。

参数:

A (张量): 大小为 (,m,n)(*, m, n) 的输入张量

q (int, 可选): A 的稍微高估的秩。

niter (int, 可选): 子空间迭代的次数

进行;niter 必须是非负整数,默认为 2

M (张量, 可选): 输入张量的均值,大小为

(,m,n)(*, m, n),它将在本函数中广播到 A 的大小。

参考文献:
  • Nathan Halko、Per-Gunnar Martinsson 和 Joel Tropp,使用随机性寻找结构:用于构建近似矩阵分解的概率算法,arXiv:0909.4061 [math.NA; math.PR],2009(可在 arXiv 获得)。

返回类型

Tuple[Tensor, Tensor, Tensor]

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获得面向初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源