Calcula la escasa descomposición de Cholesky de la "entrada".
Calcula la descomposición Sparse Cholesky de una matriz dispersa, con la permutación reductora de relleno dada.
La matriz dispersa de entrada y la permutación reductora de relleno "permutación" deben tener formas compatibles. Si la matriz dispersa tiene rango 3; con la dimensión del lote "B", entonces la "permutación" debe ser de rango 2; con la misma dimensión de lote "B". No hay soporte para la transmisión.
Además, cada vector componente de "permutación" debe tener una longitud "N", y contener cada uno de los números enteros {0, 1, ..., N - 1} exactamente una vez, donde "N" es el número de filas de cada componente. de la matriz dispersa.
Cada componente de la matriz dispersa de entrada debe representar una matriz definida positiva simétrica (SPD); aunque sólo se lee la parte triangular inferior de la matriz. Si algún componente individual no es SPD, se genera un error InvalidArgument.
La matriz dispersa devuelta tiene la misma forma densa que la matriz dispersa de entrada. Para cada componente "A" de la matriz dispersa de entrada, la matriz dispersa de salida correspondiente representa "L", y el factor de Cholesky triangular inferior satisface la siguiente identidad:
A = L * Lt
donde Lt denota la transpuesta de L (o su transpuesta conjugada, si "tipo" es "complejo64" o "complejo128").El parámetro "tipo" denota el tipo de elementos de la matriz. Los tipos admitidos son: `float32`, `float64`, `complex64` y `complex128`.
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 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` almacena el factor denso de Cholesky: [[ 1. 0. 0. 0.]
[ 0. 1.41 0. 0.]
[ 0. 0.70 1.58 0.]
[ 0. 0. 0. 2.]]
entrada: A `CSRSparseMatrix`. permutación: Un `Tensor`. tipo: El tipo de "entrada". Métodos públicos
Salida <Objeto> | como salida () Devuelve el identificador simbólico de un tensor. |
estático <T> SparseMatrixSparseCholesky | crear (ámbito de alcance , entrada de operando <?>, permutación de operando <entero>, tipo de clase<T>) Método de fábrica para crear una clase que envuelve una nueva operación SparseMatrixSparseCholesky. |
Salida <?> | producción () La escasa descomposición de Cholesky de la "entrada". |
Métodos heredados
Métodos públicos
Salida pública <Objeto> comoSalida ()
Devuelve el identificador simbólico de un 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 SparseMatrixSparseCholesky (alcance de alcance , entrada de operando <?>, permutación de operando <Integer>, tipo de clase<T>)
Método de fábrica para crear una clase que envuelve una nueva operación SparseMatrixSparseCholesky.
Parámetros
alcance | alcance actual |
---|---|
aporte | Una `CSRSparseMatrix`. |
permutación | Una matriz de permutación reductora de relleno. |
Devoluciones
- una nueva instancia de SparseMatrixSparseCholesky