mlx.core.linalg.svd

目录

mlx.core.linalg.svd#

svd(a: array, compute_uv: bool = True, *, stream: None | Stream | Device = None) Tuple[array, array, array]#

输入矩阵的奇异值分解 (SVD)。

此函数支持至少具有 2 个维度的数组。当输入具有超过两个维度时,函数将遍历前 a.ndim - 2 个维度的所有索引,并对每个组合的最后两个索引应用 SVD。

参数:
  • a (array) – 输入数组。

  • compute_uv (bool, 可选) – 如果为 True,则返回 USVt 分量。如果为 False,则仅返回 S 数组。默认值:True

  • stream (Stream, 可选) – 流或设备。默认为 None,在这种情况下使用默认设备的默认流。

返回值:

如果 compute_uv 为 True,返回 USVt 矩阵,使得 A = U @ diag(S) @ Vt。如果 compute_uv 为 False,返回奇异值数组 S

返回类型:

Union[tuple(array, …), array]