Calcula el orden de grado mínimo aproximado (AMD) de la "entrada".
Calcula el orden de grado mínimo aproximado (AMD) para una matriz dispersa.
La permutación devuelta se puede utilizar para permutar las filas y columnas de la matriz dispersa dada. Por lo general, esto da como resultado que el Cholesky disperso de la matriz dispersa permutada (u otras descomposiciones) tenga menos relleno de ceros en comparación con la descomposición de la matriz original.
La matriz dispersa de entrada puede tener rango 2 o rango 3. El tensor de salida, que lo representa, tendría rango 1 o 2 respectivamente, con la misma forma de lote que la entrada.
Cada componente de la matriz dispersa de entrada debe representar una matriz simétrica cuadrada; sólo se lee la parte triangular inferior de la matriz. Los valores de la matriz dispersa no afectan la permutación devuelta, solo se utiliza el patrón de dispersión de la matriz dispersa. Por lo tanto, se puede reutilizar un único orden AMD para las descomposiciones de Cholesky de matrices dispersas con el mismo patrón de dispersión pero con valores posiblemente diferentes.
Cada componente por lotes de la permutación de salida representa una permutación de "N" elementos, donde los componentes de la matriz dispersa de entrada tienen cada uno "N" filas. Es decir, el componente contiene cada uno de los números enteros `{0, .. N-1}` exactamente una vez. El elemento "i" representa el índice de fila al que se asigna la fila "i".
Ejemplo de uso:
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)
entrada: A `CSRSparseMatrix`.
Constantes
Cadena | OP_NOMBRE | El nombre de esta operación, como lo conoce el motor central de TensorFlow. |
Métodos públicos
Salida < TInt32 > | como salida () Devuelve el identificador simbólico del tensor. |
estático SparseMatrixOrderingAMD | crear (alcance alcance , entrada de operando <?>) Método de fábrica para crear una clase que envuelve una nueva operación SparseMatrixOrderingAMD. |
Salida < TInt32 > | producción () El orden de grado mínimo aproximado (AMD) de "entrada". |
Métodos heredados
Constantes
Cadena final estática pública OP_NAME
El nombre de esta operación, como lo conoce el motor central de TensorFlow.
Métodos públicos
Salida pública < TInt32 > asOutput ()
Devuelve el identificador simbólico del tensor.
Las entradas a las operaciones de TensorFlow son salidas de otra operación de TensorFlow. Este método se utiliza para obtener un identificador simbólico que representa el cálculo de la entrada.
creación pública estática SparseMatrixOrderingAMD (alcance alcance , entrada de operando <?>)
Método de fábrica para crear una clase que envuelve una nueva operación SparseMatrixOrderingAMD.
Parámetros
alcance | alcance actual |
---|---|
aporte | Una `CSRSparseMatrix`. |
Devoluciones
- una nueva instancia de SparseMatrixOrderingAMD