torch.svd_lowrank#
- torch.svd_lowrank(A, q=6, niter=2, M=None)[原始碼]#
返回矩陣、矩陣批次或稀疏矩陣 的奇異值分解
(U, S, V),使得 . 如果給出了 ,則對矩陣 進行 SVD 計算。注意
該實現基於 Halko 等人 2009 年的演算法 5.1。
注意
對於一個 k 秩矩陣 的充分近似,其中 k 未知,但可以估算,Q 列的數量 q 可以根據以下標準選擇:通常 . 對於大型低秩矩陣,取 . 如果 k 相對於 相對較小,選擇 可能就足夠了。
注意
這是一個隨機方法。為了獲得可重複的結果,請設定偽隨機數生成器的種子。
注意
總的來說,對於密集矩陣,由於其效能提高 10 倍的特點,請使用全秩 SVD 實現
torch.linalg.svd()。低秩 SVD 對於torch.linalg.svd()無法處理的超大稀疏矩陣會很有用。- 引數:
A (Tensor): 輸入張量,大小為
q (int, optional): A 的一個略微過估計的秩。
- niter (int, optional): 要進行的子空間迭代次數;niter 必須是非負整數,預設為 2
conduct; niter must be a nonnegative integer, and defaults to 2
- M (Tensor, optional): 輸入張量的均值,大小為
,在函式中將廣播到 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)。
- 返回型別