mindspore.ops.Geqrf

class mindspore.ops.Geqrf[源代码]

将矩阵分解为正交矩阵 Q 和上三角矩阵 R 的乘积。该过程称为QR分解: \(A = QR\)

QR 矩阵都存储在同一个输出Tensor y 中。 R 的元素存储在对角线及上方。隐式定义矩阵 Q 的基本反射器(或户主向量)存储在对角线下方。

此函数返回两个Tensor( y, tau )。

警告

这是一个实验性API,后续可能修改或删除。

输入:
  • x (Tensor) - shape为 \((*, m, n)\) ,输入矩阵维度必须为大于等于两维,支持dtype为float32、float64、complex64、complex128。

输出:
  • y (Tensor) - shape为 \((*, m, n)\) ,与 x 具有相同的dtype。

  • tau (Tensor) - shape为 \((*, p,)\) ,并且 \(p = min(m, n)\) ,与 x 具有相同的dtype。

异常:
  • TypeError - 如果 x 不是一个Tensor。

  • TypeError - 如果 x 的dtype不是float32、float64、complex64、complex128中的一个。

  • ValueError - 如果 x 的维度小于2。

支持平台:

Ascend GPU CPU

样例:

>>> input_x = Tensor(np.array([[-2.0, -1.0], [1.0, 2.0]]).astype(np.float32))
>>> geqrf = ops.Geqrf()
>>> y, tau = geqrf(input_x)
>>> print(y)
[[ 2.236068   1.7888544]
 [-0.236068   1.3416407]]
>>> print(tau)
[1.8944271 0.       ]