Solves one or more linear least-squares problems.
View aliases
Compat aliases for migration
See Migration guide for more details.
tf.raw_ops.MatrixSolveLs(
matrix, rhs, l2_regularizer, fast=True, name=None
)
matrix
is a tensor of shape [..., M, N]
whose inner-most 2 dimensions
form real or complex matrices of size [M, N]
. Rhs
is a tensor of the same
type as matrix
and shape [..., M, K]
.
The output is a tensor shape [..., N, K]
where each output matrix solves
each of the equations
matrix[..., :, :]
* output[..., :, :]
= rhs[..., :, :]
in the least squares sense.
We use the following notation for (complex) matrix and right-hand sides in the batch:
matrix
=,
rhs
=,
output
=,
l2_regularizer
=.
If fast
is True
, then the solution is computed by solving the normal
equations using Cholesky decomposition. Specifically, if then
, which solves the least-squares
problem .
If then output
is computed as
, which (for ) is the
minimum-norm solution to the under-determined linear system, i.e.
,
subject to . Notice that the fast path is only numerically stable
when is numerically full rank and has a condition number
or is
sufficiently large.
If fast
is False
an algorithm based on the numerically robust complete
orthogonal decomposition is used. This computes the minimum-norm
least-squares solution, even when is rank deficient. This path is
typically 6-7 times slower than the fast path. If fast
is False
then
l2_regularizer
is ignored.
Returns | |
---|---|
A Tensor . Has the same type as matrix .
|
numpy compatibility
Equivalent to np.linalg.lstsq