快捷方式

torch.svd_lowrank

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

返回矩陣、批次矩陣或稀疏矩陣 AA 的奇異值分解 (U, S, V),使得 AUdiag(S)VHA \approx U \operatorname{diag}(S) V^{\text{H}}。如果提供了 MM,則計算矩陣 AMA - M 的 SVD。

注意

此實現基於 Halko 等人於 2009 年提出的演算法 5.1。

注意

對於矩陣 AA 的充分 k 秩近似,其中 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, and Joel Tropp, Finding structure with randomness: probabilistic algorithms for constructing approximate matrix decompositions, arXiv:0909.4061 [math.NA; math.PR], 2009 (可在 arXiv 獲取)。

返回型別

tuple[torch.Tensor, torch.Tensor, torch.Tensor]

文件

訪問 PyTorch 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深入教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源