mindspore.ops.orgqr

mindspore.ops.orgqr(input, input2)[源代码]

计算Householder矩阵的前 \(N\) 列。

通常用于计算 mindspore.ops.Geqrf 返回的正交矩阵 \(Q\) 的显式表示。

下面以输入无batch维的情况为例: 假设输入 input 的shape经过Householder转换之后为:\((M, N)\) 。 当 input 的对角线被置为1, input 中下三角形的每一列都表示为: \(w_j\) ,其中 \(j\)\(j=1, \ldots, M\) 范围内,此函数返回Householder矩阵乘积的前 \(N\) 列:

\[H_{1} H_{2} \ldots H_{k} \quad \text { with } \quad H_{j}=\mathrm{I}_{M}-\tau_{j} w_{j} w_{j}^{\mathrm{H}}\]

其中:\(\mathrm{I}_{M}\)\(M\) 维单位矩阵。当 \(w\) 是复数的时候,\(w^{\mathrm{H}}\) 是共轭转置,否则是一般转置。输出的shape与输入shape相同。 \(\tau\) 即输入 input2

参数:
  • input (Tensor) - 二维或三维输入tensor,表示Householder反射向量, shape \((*, M, N)\)

  • input2 (Tensor) - 一维或二维输入tensor,表示Householder反射系数,shape为 \((*, K)\) ,其中 K 小于等于 N

返回:

Tensor

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> input = mindspore.tensor([[-2.0, -1.0], [1.0, 2.0]])
>>> y, tau = mindspore.ops.geqrf(input)
>>> mindspore.ops.orgqr(y, tau)
Tensor(shape=[2, 2], dtype=Float32, value=
[[-8.94427061e-01,  4.47213590e-01],
 [ 4.47213590e-01,  8.94427180e-01]])