Shortcuts

torch.svd_lowrank

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

返回矩阵、矩阵批次或稀疏矩阵 AA 的奇异值分解 (U, S, V),使得 AUdiag(S)VTA \approx U diag(S) V^T。如果给定 MM,则 对矩阵 AMA - M 进行奇异值分解。

注意

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

注意

为了获得可重复的结果,重置伪随机数生成器的种子

注意

假设输入是一个低秩矩阵。

注意

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

Args::

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

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

niter (int, optional): the number of subspace iterations to

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

M (Tensor, optional): the input tensor’s mean of size

(,1,n)(*, 1, n).

References::
  • Nathan Halko、Per-Gunnar Martinsson 和 Joel Tropp,通过随机性发现结构:用于构建近似矩阵分解的概率算法,arXiv:0909.4061 [math.NA; math.PR],2009年(可在arXiv获取)。

Return type

元组[张量, 张量, 张量]

优云智算