當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python dask.array.linalg.svd_compressed用法及代碼示例

用法:

dask.array.linalg.svd_compressed(a, k, iterator='power', n_power_iter=0, n_oversamples=10, seed=None, compute=False, coerce_signs=True)

隨機壓縮rank-k薄奇異值分解。

這計算了一個大數組的近似奇異值分解。該算法通常比普通算法快,但不能提供準確的結果。可以通過輸入參數在性能和準確性之間取得平衡(見下文)。

參數

a: Array

輸入數組

k: int

所需的薄 SVD 分解的等級。

iterator: {‘power’, ‘QR’}, default=’power’

定義用於迭代的技術,以應對平坦的奇異譜或輸入矩陣非常大的情況。

n_power_iter: int, default=0

冪迭代次數,當奇異值衰減緩慢時很有用。隨著n_power_iter 的增加,誤差呈 index 下降。在實踐中,設置 n_power_iter

n_oversamples: int, default=10

用於生成采樣矩陣的過采樣數。這個值增加了計算的子空間的大小,以效率為代價更準確。結果很少對這種選擇敏感,實際上,10 的值通常足夠高。

computebool

是否在每次使用時計算數據。在執行多次傳遞時重新計算輸入可以減少內存壓力,但這意味著我們必須多次計算輸入。如果數據大於內存並且重新創建成本低廉,這是一個不錯的選擇。

coerce_signsbool

是否對奇異向量應用符號強製以保持確定性結果,默認為 True。

返回

u:數組,單一/正交
s:數組,降序奇異值(最大在前)
v:數組,單一/正交

參考

N. Halko、P. G. Martinsson 和 J. A. Tropp。尋找具有隨機性的結構:構造近似矩陣分解的概率算法。 SIAM Rev.,調查和審查部分,卷。 53,編號。 2,第 217-288 頁,2011 年 6 月 https://arxiv.org/abs/0909.4061

例子

>>> u, s, v = svd_compressed(x, 20)

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.array.linalg.svd_compressed。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。