Calcola l'ordine del grado minimo approssimativo (AMD) di "input".
Calcola l'ordinamento del grado minimo approssimato (AMD) per una matrice sparsa.
La permutazione restituita può essere utilizzata per permutare le righe e le colonne della matrice sparsa data. Ciò in genere si traduce in Cholesky sparso (o altre scomposizioni) della matrice sparsa permutata con un minor riempimento di zero rispetto alla scomposizione della matrice originale.
La matrice sparsa di input può avere rango 2 o rango 3. Il tensore di output, che rappresenta, avrebbe quindi rispettivamente rango 1 o 2, con la stessa forma batch dell'input.
Ciascun componente della matrice sparsa di input deve rappresentare una matrice quadrata simmetrica; viene letta solo la parte triangolare inferiore della matrice. I valori della matrice sparsa non influiscono sulla permutazione restituita, viene utilizzato solo il modello di scarsità della matrice sparsa. Quindi, un singolo ordinamento AMD può essere riutilizzato per le scomposizioni di Cholesky di matrici sparse con lo stesso modello di scarsità ma con valori possibilmente diversi.
Ciascun componente batch della permutazione di output rappresenta una permutazione di "N" elementi, dove i componenti della matrice sparsa di input hanno ciascuno "N" righe. Cioè, il componente contiene ciascuno degli interi `{0, .. N-1}` esattamente una volta. L'elemento `i`esimo rappresenta l'indice di riga a cui è mappata la riga `i`esimo.
Esempio di utilizzo:
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 AMD Ordering for the CSR SparseMatrix.
ordering_amd = sparse_csr_matrix_ops.sparse_matrix_ordering_amd(sparse_matrix)
ordering_amd_value = sess.run(ordering_amd)
input: un `CSRSparseMatrix`.
Costanti
Corda | OP_NAME | Il nome di questa operazione, come noto al motore principale di TensorFlow |
Metodi pubblici
Uscita < TInt32 > | comeuscita () Restituisce l'handle simbolico del tensore. |
static SparseMatrixOrderingAMD | |
Uscita < TInt32 > | produzione () L'ordine del grado minimo approssimativo (AMD) di "input". |
Metodi ereditati
Costanti
Stringa finale statica pubblica OP_NAME
Il nome di questa operazione, come noto al motore principale di TensorFlow
Metodi pubblici
output pubblico < TInt32 > 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.
creazione statica pubblica SparseMatrixOrderingAMD (ambito ambito , operando <?> input)
Metodo factory per creare una classe che racchiude una nuova operazione SparseMatrixOrderingAMD.
Parametri
ambito | ambito attuale |
---|---|
ingresso | Una "CSRSparseMatrix". |
Ritorni
- una nuova istanza di SparseMatrixOrderingAMD