当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。