MatrixSolveLs

classe finale publique MatrixSolveLs

Résout un ou plusieurs problèmes de moindres carrés linéaires.

`matrix` est un tenseur de forme `[..., M, N]` dont les 2 dimensions les plus intérieures forment des matrices réelles ou complexes de taille `[M, N]`. `Rhs` est un tenseur du même type que `matrice` et forme `[..., M, K]`. La sortie est une forme tensorielle `[..., N, K]` où chaque matrice de sortie résout chacune des équations `matrix[..., :, :]` * `output[..., :, :] ` = `rhs[..., :, :]` au sens des moindres carrés.

Nous utilisons la notation suivante pour la matrice (complexe) et les côtés droits du lot :

`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}\\).

Si « rapide » est « Vrai », alors la solution est calculée en résolvant les équations normales en utilisant la décomposition de Cholesky. Plus précisément, if \\(m \ge n\\) then \\(X = (A^H A + \lambda I)^{-1} A^H B\\), qui résout le problème des moindres carrés \\(X = \mathrm{argmin}_{Z \in \Re^{n \times k} } ||A Z - B||_F^2 + \lambda ||Z||_F^2\\). Si \\(m \lt n\\) alors la « sortie » est calculée comme \\(X = A^H (A A^H + \lambda I)^{-1} B\\), qui (pour \\(\lambda = 0\\)) est la solution de norme minimale au système linéaire sous-déterminé, c'est-à-dire \\(X = \mathrm{argmin}_{Z \in \mathbb{C}^{n \times k} } ||Z||_F^2 \\), sous réserve de \\(A Z = B\\). Notez que le chemin rapide n'est numériquement stable que lorsque \\(A\\) est numériquement complet et a un numéro de condition \\(\mathrm{cond}(A) \lt \frac{1}{\sqrt{\epsilon_{mach} } }\\) ou \\(\lambda\\) est suffisamment grand.

Si « rapide » est « Faux », un algorithme basé sur la décomposition orthogonale complète numériquement robuste est utilisé. Ceci calcule la solution des moindres carrés de norme minimale, même lorsque \\(A\\) est de rang déficient. Ce chemin est généralement 6 à 7 fois plus lent que le chemin rapide. Si « fast » est « False », alors « l2_regularizer » est ignoré.

Classes imbriquées

classe MatrixSolveLs.Options Attributs facultatifs pour MatrixSolveLs

Constantes

Chaîne OP_NAME Le nom de cette opération, tel que connu par le moteur principal TensorFlow

Méthodes publiques

Sortie <T>
comme Sortie ()
Renvoie le handle symbolique du tenseur.
statique <T étend TType > MatrixSolveLs <T>
créer ( Portée de portée , Matrice d'opérande <T>, Opérande <T> rhs, Opérande < TFloat64 > l2Regularizer, Options... options)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération MatrixSolveLs.
MatrixSolveLs.Options statique
rapide (booléen rapide)
Sortie <T>
sortir ()
La forme est `[..., N, K]`.

Méthodes héritées

Constantes

chaîne finale statique publique OP_NAME

Le nom de cette opération, tel que connu par le moteur principal TensorFlow

Valeur constante : "MatrixSolveLs"

Méthodes publiques

sortie publique <T> asOutput ()

Renvoie le handle symbolique du tenseur.

Les entrées des opérations TensorFlow sont les sorties d'une autre opération TensorFlow. Cette méthode est utilisée pour obtenir un handle symbolique qui représente le calcul de l’entrée.

public static MatrixSolveLs <T> create ( Portée de portée , Matrice d'opérande <T>, Opérande <T> rhs, Opérande < TFloat64 > l2Regularizer, Options... options)

Méthode d'usine pour créer une classe encapsulant une nouvelle opération MatrixSolveLs.

Paramètres
portée portée actuelle
matrice La forme est `[..., M, N]`.
rhs La forme est `[..., M, K]`.
l2Régulateur Tenseur scalaire.

choix porte des valeurs d'attributs facultatifs
Retour
  • une nouvelle instance de MatrixSolveLs

public statique MatrixSolveLs.Options rapide (booléen rapide)

sortie publique <T> sortie ()

La forme est `[..., N, K]`.