• 文档 >
  • torch >
  • torch.svd_lowrank
快捷键

torch.svd_lowrank

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

返回矩阵、矩阵批或稀疏矩阵的奇异值分解 (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 可能足够。

注意

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

注意

通常情况下,由于全秩 SVD 实现 torch.linalg.svd() 在密集矩阵上的性能特性比其高 10 倍,因此建议使用。对于巨大的稀疏矩阵,低秩 SVD 将非常有用,因为 torch.linalg.svd() 无法处理。

Args::

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

q(int,可选):A 的略微高估的排名。

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

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

M(Tensor,可选):输入张量的平均值的尺寸

在此函数中将广播到 A 的大小。

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

返回类型:

元组[torch.Tensor, torch.Tensor, torch.Tensor]


© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

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

查看资源