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