mindspore.ops.Lstsq

class mindspore.ops.Lstsq(fast=True, l2_regularizer=0.0)[源代码]

计算满秩矩阵 x (m×n) 与满秩矩阵 a (m×k) 的最小二乘问题或最小范数问题的解。

mnLstsq 解决最小二乘问题:

minyxya2.

m<nLstsq 解决最小范数问题:

minyy2subject toxy=a.
参数:
  • fast (bool,可选) - 使用的算法。默认值:True。

    • 如果 fast 为True,则使用Cholesky分解求解正态方程来计算解。

    • 如果 fast 为False,则基于数值鲁棒的完全正交分解的算法被使用。

  • l2_regularizer (float,可选) - L2正则化系数。默认值:0.0。

输入:
  • x (Tensor) - (m×n) 的矩阵 x 。输入Tensor的数据类型为float16、float32或float64。

  • a (Tensor) - (m×k) 的矩阵 a 。输入Tensor的数据类型为float16、float32或float64。

输出:

Tensor,最小二乘问题或最小范数问题的解,其shape为 (n×k) ,数据类型与 x 相同。

异常:
  • TypeError - 若输入 xa 不是Tensor。

  • TypeError - 若 xa 的数据类型不是以下之一:float16、float32、float64。

  • TypeError - 若 xa 的数据类型不同。

  • ValueError - 若 x 的维度不等于2。

  • ValueError - 若 a 的维度不等于2或1。

  • ValueError - 若 xa shape的第零维不相等。

支持平台:

CPU

样例:

>>> x = Tensor(np.array([[2,1,5],[3,5,1],[1,1,1]]),mindspore.float32)
>>> a = Tensor(np.array([[10,5],[15,8],[7,4]]),mindspore.float32)
>>> op = ops.Lstsq()
>>> output = op(x, a)
>>> print(output)
[[17.000002  11.000002 ]
 [-6.5000005 -4.500001 ]
 [-3.500002  -2.5000017]]