SparseMatrixSparseCholesky

classe finale publique SparseMatrixSparseCholesky

Calcule la décomposition clairsemée de Cholesky de « input ».

Calcule la décomposition Sparse Cholesky d'une matrice clairsemée, avec la permutation réductrice de remplissage donnée.

La matrice clairsemée d'entrée et la permutation réductrice de remplissage doivent avoir des formes compatibles. Si la matrice clairsemée a le rang 3 ; avec la dimension du lot 'B', alors la 'permutation' doit être de rang 2 ; avec la même dimension de lot « B ». Il n'y a aucun support pour la diffusion.

De plus, chaque vecteur composant de « permutation » doit être de longueur « N », contenant chacun des entiers {0, 1, ..., N - 1} exactement une fois, où « N » est le nombre de lignes de chaque composant. de la matrice clairsemée.

Chaque composant de la matrice clairsemée d'entrée doit représenter une matrice symétrique définie positive (SPD) ; bien que seule la partie triangulaire inférieure de la matrice soit lue. Si un composant individuel n'est pas SPD, une erreur InvalidArgument est générée.

La matrice clairsemée renvoyée a la même forme dense que la matrice clairsemée d'entrée. Pour chaque composante « A » de la matrice clairsemée d'entrée, la matrice clairsemée de sortie correspondante représente « L », le facteur de Cholesky triangulaire inférieur satisfaisant l'identité suivante :

A = L * Lt
 
où Lt désigne la transposée de L (ou sa transposée conjuguée, si « type » est « complexe64 » ou « complexe128 »).

Le paramètre `type` désigne le type des éléments de la matrice. Les types pris en charge sont : `float32`, `float64`, `complex64` et `complex128`.

Exemple d'utilisation :

from tensorflow.python.ops.linalg.sparse import sparse_csr_matrix_ops
 
     a_indices = np.array([[0, 0], [1, 1], [2, 1], [2, 2], [3, 3]])
     a_values = np.array([1.0, 2.0, 1.0, 3.0, 4.0], np.float32)
     a_dense_shape = [4, 4]
 
     with tf.Session() as sess:
       # Define (COO format) SparseTensor over Numpy array.
       a_st = tf.sparse.SparseTensor(a_indices, a_values, a_dense_shape)
 
       # Convert SparseTensors to CSR SparseMatrix.
       a_sm = sparse_csr_matrix_ops.sparse_tensor_to_csr_sparse_matrix(
           a_st.indices, a_st.values, a_st.dense_shape)
 
       # Obtain the Sparse Cholesky factor using AMD Ordering for reducing zero
       # fill-in (number of structural non-zeros in the sparse Cholesky factor).
       ordering_amd = sparse_csr_matrix_ops.sparse_matrix_ordering_amd(sparse_matrix)
       cholesky_sparse_matrices = (
           sparse_csr_matrix_ops.sparse_matrix_sparse_cholesky(
               sparse_matrix, ordering_amd, type=tf.float32))
 
       # Convert the CSRSparseMatrix Cholesky factor to a dense Tensor
       dense_cholesky = sparse_csr_matrix_ops.csr_sparse_matrix_to_dense(
           cholesky_sparse_matrices, tf.float32)
 
       # Evaluate the dense Tensor value.
       dense_cholesky_value = sess.run(dense_cholesky)
 
`dense_cholesky_value` stocke le facteur Cholesky dense :
[[  1.  0.    0.    0.]
      [  0.  1.41  0.    0.]
      [  0.  0.70  1.58  0.]
      [  0.  0.    0.    2.]]
 
entrée : Un `CSRSparseMatrix`. permutation : Un `Tenseur`. type : Le type d’« entrée ».

Constantes

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

Méthodes publiques

Sortie < TType >
comme Sortie ()
Renvoie le handle symbolique du tenseur.
statique <T étend TType > SparseMatrixSparseCholesky
créer (portée de portée , entrée opérande <?>, permutation opérande < TInt32 >, type Class<T>)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération SparseMatrixSparseCholesky.
Sortie <?>
sortir ()
La décompression clairsemée de Cholesky de « input ».

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 : "SparseMatrixSparseCholesky"

Méthodes publiques

sortie publique < TType > 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 SparseMatrixSparseCholesky créer (portée de portée , entrée opérande <?>, permutation opérande <TInt32> , type Class<T>)

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

Paramètres
portée portée actuelle
saisir Un `CSRSparseMatrix`.
permutation Une matrice de permutation réductrice de remplissage.
Retours
  • une nouvelle instance de SparseMatrixSparseCholesky

sortie publique <?> sortie ()

La décompression clairsemée de Cholesky de « input ».