dask 2021.10.0

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

This computes the approximate singular value decomposition of a large array. This algorithm is generally faster than the normal algorithm but does not provide exact results. One can balance between performance and accuracy with input parameters (see below).

Parameters

a: Array :

Input array

k: int :

Rank of the desired thin SVD decomposition.

iterator: {'power', 'QR'}, default='power' :

Define the technique used for iterations to cope with flat singular spectra or when the input matrix is very large.

n_power_iter: int, default=0 :

Number of power iterations, useful when the singular values decay slowly. Error decreases exponentially as :None:None:`n_power_iter` increases. In practice, set :None:None:`n_power_iter` <= 4.

n_oversamples: int, default=10 :

Number of oversamples used for generating the sampling matrix. This value increases the size of the subspace computed, which is more accurate at the cost of efficiency. Results are rarely sensitive to this choice though and in practice a value of 10 is very commonly high enough.

compute : bool

Whether or not to compute data at each use. Recomputing the input while performing several passes reduces memory pressure, but means that we have to compute the input multiple times. This is a good choice if the data is larger than memory and cheap to recreate.

coerce_signs : bool

Whether or not to apply sign coercion to singular vectors in order to maintain deterministic results, by default True.

Returns

u: Array, unitary / orthogonal
s: Array, singular values in decreasing order (largest first)
v: Array, unitary / orthogonal

Randomly compressed rank-k thin Singular Value Decomposition.

Examples

This example is valid syntax, but we were not able to check execution
>>> u, s, v = svd_compressed(x, 20)  # doctest: +SKIP
See :

Back References

The following pages refer to to this document either explicitly or contain code examples using this.

dask.array.ma.filled dask.array.linalg.svd_compressed

Local connectivity graph

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them


File: /dask/array/linalg.py#740
type: <class 'function'>
Commit: