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


Python mxnet.ndarray.linalg.syevd用法及代码示例


用法:

mxnet.ndarray.linalg.syevd(A=None, out=None, name=None, **kwargs)

参数

  • A(NDArray) - 要分解的输入矩阵的张量
  • out(NDArray, optional) - 输出 NDArray 来保存结果。

返回

out- 此函数的输出。

返回类型

NDArray 或 NDArray 列表

对称矩阵的特征分解。输入是一个张量 A 的维度 n >= 2

如果 n=2A 必须是对称的,形状为 (x, x) 。我们计算特征分解,得到特征向量的正交矩阵U,形状(x, x),以及特征值的向量L,形状(x,),因此:

U * A = diag(L) * U

这里:

U * UT = UT * U = I

其中I 是单位矩阵。另外,L(0) <= L(1) <= L(2) <= …(升序)。

如果 n>2 ,则 syevd 分别在 A 的尾随两个维度上执行(批处理模式)。在这种情况下,U 具有 n 尺寸,例如 A ,而 L 具有 n-1 尺寸。

注意

该运算符仅支持 float32 和 float64 数据类型。

注意

仅当 A 的所有特征值都不同且特征间隙不太小时,才定义此运算符的导数。如果您需要梯度,请不要将此运算符应用于具有多个特征值的矩阵。

例子:

Single symmetric eigendecomposition
A = [[1., 2.], [2., 4.]]
U, L = syevd(A)
U = [[0.89442719, -0.4472136],
     [0.4472136, 0.89442719]]
L = [0., 5.]

Batch symmetric eigendecomposition
A = [[[1., 2.], [2., 4.]],
     [[1., 2.], [2., 5.]]]
U, L = syevd(A)
U = [[[0.89442719, -0.4472136],
      [0.4472136, 0.89442719]],
     [[0.92387953, -0.38268343],
      [0.38268343, 0.92387953]]]
L = [[0., 5.],
     [0.17157288, 5.82842712]]

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 mxnet.ndarray.linalg.syevd。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。