捷徑

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 可能就足夠了。

注意

這是一種隨機方法。 要獲得可重複的結果,請設定虛擬亂數產生器的種子。

注意

一般而言,對於密集矩陣,請使用全秩 SVD 實現 torch.linalg.svd(),因為它的效能特性高出 10 倍。 低秩 SVD 適用於 torch.linalg.svd() 無法處理的巨型稀疏矩陣。

引數:

A (Tensor):大小為 (,m,n)(*, m, n) 的輸入張量

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

niter (int, optional):要執行的子空間疊代次數;

執行; niter 必須為非負整數,預設為 2

M (Tensor, optional):輸入張量的大小為

(,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[Tensor, Tensor, Tensor]

文件

取得 PyTorch 的完整開發者文件

檢視文件

教學

取得初學者和進階開發者的深入教學

檢視教學

資源

尋找開發資源並獲得問題解答

檢視資源