A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://docs.pytorch.org/docs/main/generated/torch.linalg.lstsq.html below:

torch.linalg.lstsq — PyTorch main documentation

Computes a solution to the least squares problem of a system of linear equations.

Letting K \mathbb{K} K be R \mathbb{R} R or C \mathbb{C} C, the least squares problem for a linear system A X = B AX = B AX=B with A ∈ K m × n , B ∈ K m × k A \in \mathbb{K}^{m \times n}, B \in \mathbb{K}^{m \times k} AKm×n,BKm×k is defined as

min ⁡ X ∈ K n × k ∥ A X − B ∥ F \min_{X \in \mathbb{K}^{n \times k}} \|AX - B\|_F XKn×kminAXBF

where ∥ − ∥ F \|-\|_F F denotes the Frobenius norm.

Supports inputs of float, double, cfloat and cdouble dtypes. Also supports batches of matrices, and if the inputs are batches of matrices then the output has the same batch dimensions.

driver chooses the backend function that will be used. For CPU inputs the valid values are ‘gels’, ‘gelsy’, ‘gelsd, ‘gelss’. To choose the best driver on CPU consider:

For CUDA input, the only valid driver is ‘gels’, which assumes that A is full-rank.

See also the full description of these drivers

rcond is used to determine the effective rank of the matrices in A when driver is one of (‘gelsy’, ‘gelsd’, ‘gelss’). In this case, if σ i \sigma_i σi are the singular values of A in decreasing order, σ i \sigma_i σi will be rounded down to zero if σ i ≤ rcond ⋅ σ 1 \sigma_i \leq \text{rcond} \cdot \sigma_1 σircondσ1. If rcond= None (default), rcond is set to the machine precision of the dtype of A times max(m, n).

This function returns the solution to the problem and some extra information in a named tuple of four tensors (solution, residuals, rank, singular_values). For inputs A, B of shape (*, m, n), (*, m, k) respectively, it contains

Note

This function computes X = A.pinverse() @ B in a faster and more numerically stable way than performing the computations separately.

Warning

The default value of rcond may change in a future PyTorch release. It is therefore recommended to use a fixed value to avoid potential breaking changes.

Parameters
Keyword Arguments

driver (str, optional) – name of the LAPACK/MAGMA method to be used. If None, ‘gelsy’ is used for CPU inputs and ‘gels’ for CUDA inputs. Default: None.

Returns

A named tuple (solution, residuals, rank, singular_values).

Examples:

>>> A = torch.randn(1,3,3)
>>> A
tensor([[[-1.0838,  0.0225,  0.2275],
     [ 0.2438,  0.3844,  0.5499],
     [ 0.1175, -0.9102,  2.0870]]])
>>> B = torch.randn(2,3,3)
>>> B
tensor([[[-0.6772,  0.7758,  0.5109],
     [-1.4382,  1.3769,  1.1818],
     [-0.3450,  0.0806,  0.3967]],
    [[-1.3994, -0.1521, -0.1473],
     [ 1.9194,  1.0458,  0.6705],
     [-1.1802, -0.9796,  1.4086]]])
>>> X = torch.linalg.lstsq(A, B).solution # A is broadcasted to shape (2, 3, 3)
>>> torch.dist(X, torch.linalg.pinv(A) @ B)
tensor(1.5152e-06)

>>> S = torch.linalg.lstsq(A, B, driver='gelsd').singular_values
>>> torch.dist(S, torch.linalg.svdvals(A))
tensor(2.3842e-07)

>>> A[:, 0].zero_()  # Decrease the rank of A
>>> rank = torch.linalg.lstsq(A, B).rank
>>> rank
tensor([2])

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4