MatrixSolveLs

classe finale pubblica MatrixSolveLs

Risolve uno o più problemi lineari ai minimi quadrati.

`matrice` è un tensore di forma `[..., M, N]` le cui 2 dimensioni più interne formano matrici reali o complesse di dimensione `[M, N]`. `Rhs` è un tensore dello stesso tipo di `matrice` e forma `[..., M, K]`. L'output è una forma tensore `[..., N, K]` in cui ciascuna matrice di output risolve ciascuna delle equazioni `matrice[..., :, :]` * `output[..., :, :] ` = `rhs[..., :, :]` nel senso dei minimi quadrati.

Usiamo la seguente notazione per la matrice (complessa) e i lati destri nel batch:

`matrix`=\\(A \in \mathbb{C}^{m \times n}\\), `rhs`=\\(B \in \mathbb{C}^{m \times k}\\), `output`=\\(X \in \mathbb{C}^{n \times k}\\), `l2_regularizer`=\\(\lambda \in \mathbb{R}\\).

Se "veloce" è "Vero", la soluzione viene calcolata risolvendo le equazioni normali utilizzando la decomposizione di Cholesky. Nello specifico, se \\(m \ge n\\) allora \\(X = (A^H A + \lambda I)^{-1} A^H B\\), che risolve il problema dei minimi quadrati \\(X = \mathrm{argmin}_{Z \in \Re^{n \times k} } ||A Z - B||_F^2 + \lambda ||Z||_F^2\\). Se \\(m \lt n\\) allora `output` viene calcolato come \\(X = A^H (A A^H + \lambda I)^{-1} B\\), che (per \\(\lambda = 0\\)) è la soluzione a norma minima per il sistema lineare sottodeterminato, ovvero \\(X = \mathrm{argmin}_{Z \in \mathbb{C}^{n \times k} } ||Z||_F^2 \\), soggetto a \\(A Z = B\\). Si noti che il percorso veloce è numericamente stabile solo quando \\(A\\) ha il rango numericamente completo e ha un numero di condizione \\(\mathrm{cond}(A) \lt \frac{1}{\sqrt{\epsilon_{mach} } }\\) o \\(\lambda\\) sufficientemente grande.

Se "veloce" è "falso" viene utilizzato un algoritmo basato sulla scomposizione ortogonale completa numericamente robusta. Questo calcola la soluzione dei minimi quadrati a norma minima, anche quando \\(A\\) ha un rango carente. Questo percorso è in genere 6-7 volte più lento del percorso veloce. Se "fast" è "False" allora "l2_regularizer" viene ignorato.

Classi nidificate

classe MatrixSolveLs.Options Attributi facoltativi per MatrixSolveLs

Costanti

Corda OP_NAME Il nome di questa operazione, come noto al motore principale di TensorFlow

Metodi pubblici

Uscita <T>
comeuscita ()
Restituisce l'handle simbolico del tensore.
statico <T estende TType > MatrixSolveLs <T>
create ( ambito ambito , matrice operando <T>, operando <T> rhs, operando < TFloat64 > l2Regularizer, opzioni... opzioni)
Metodo factory per creare una classe che racchiude una nuova operazione MatrixSolveLs.
MatrixSolveLs.Options statico
veloce (veloce booleano)
Uscita <T>
produzione ()
La forma è "[..., N, K]".

Metodi ereditati

Costanti

Stringa finale statica pubblica OP_NAME

Il nome di questa operazione, come noto al motore principale di TensorFlow

Valore costante: "MatrixSolveLs"

Metodi pubblici

Uscita pubblica <T> asOutput ()

Restituisce l'handle simbolico del tensore.

Gli input per le operazioni TensorFlow sono output di un'altra operazione TensorFlow. Questo metodo viene utilizzato per ottenere un handle simbolico che rappresenta il calcolo dell'input.

public static MatrixSolveLs <T> create ( scope scope, operando <T> matrice, operando <T> rhs, operando < TFloat64 > l2Regularizer, Opzioni... opzioni)

Metodo factory per creare una classe che racchiude una nuova operazione MatrixSolveLs.

Parametri
scopo ambito attuale
matrice La forma è "[..., M, N]".
ds La forma è "[..., M, K]".
l2Regolarizzatore Tensore scalare.

opzioni trasporta valori di attributi opzionali
ritorna
  • una nuova istanza di MatrixSolveLs

public static MatrixSolveLs.Options fast (Booleano veloce)

Uscita pubblica <T> uscita ()

La forma è "[..., N, K]".