mindspore.ops.geqrf
- mindspore.ops.geqrf(input)[源代码]
将矩阵分解为正交矩阵 Q 和上三角矩阵 R 的乘积。该过程称为QR分解: \(A = QR\) 。
Q 和 R 矩阵都存储在同一个输出Tensor y 中。 R 的元素存储在对角线及上方。隐式定义矩阵 Q 的基本反射器(或户主向量)存储在对角线下方。
此函数返回两个Tensor(y, tau)。
警告
这是一个实验性API,后续可能修改或删除。
- 参数:
input (Tensor) - shape为 \((*, m, n)\) ,输入矩阵维度必须为大于等于两维,支持dtype为float32、float64、complex64、complex128。
- 返回:
y (Tensor) - shape为 \((*, m, n)\) ,与 input 具有相同的dtype。
tau (Tensor) - shape为 \((*, p)\) ,并且 \(p = min(m, n)\) ,与 input 具有相同的dtype。
- 异常:
TypeError - 如果 input 不是一个Tensor。
TypeError - 如果 input 的dtype不是float32、float64、complex64、complext128中的一个。
ValueError - 如果 input 的维度小于2。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import numpy as np >>> from mindspore import Tensor, ops >>> input = Tensor(np.array([[-2.0, -1.0], [1.0, 2.0]]).astype(np.float32)) >>> y, tau = ops.geqrf(input) >>> print(y) [[ 2.236068 1.7888544] [-0.236068 1.3416407]] >>> print(tau) [1.8944271 0. ]