Oblicza rzadki rozkład Choleskiego „wejściowych”.
Oblicza rozkład rzadkiego Choleskiego macierzy rzadkiej przy danej permutacji redukującej wypełnienie.
Wejściowa macierz rzadka i „permutacja” redukująca wypełnienie muszą mieć kompatybilne kształty. Jeśli macierz rzadka ma rangę 3; przy wymiarze partii „B”, wówczas „permutacja” musi mieć rangę 2; z tym samym wymiarem partii „B”. Nie ma wsparcia dla nadawania.
Ponadto każdy wektor składowy „permutacji” musi mieć długość „N” i zawierać każdą z liczb całkowitych {0, 1, ..., N - 1} dokładnie raz, gdzie „N” to liczba wierszy każdego składnika rzadkiej macierzy.
Każdy składnik wejściowej macierzy rzadkiej musi reprezentować symetryczną macierz dodatnio określoną (SPD); chociaż odczytywana jest tylko dolna trójkątna część matrycy. Jeśli jakikolwiek pojedynczy komponent nie jest SPD, zgłaszany jest błąd InvalidArgument.
Zwrócona macierz rzadka ma taki sam gęsty kształt jak wejściowa macierz rzadka. Dla każdego składnika „A” wejściowej macierzy rzadkiej odpowiadająca wyjściowa macierz rzadka reprezentuje „L”, dolny trójkątny współczynnik Choleskiego spełniający następującą tożsamość:
A = L * Lt
Parametr `type` określa typ elementów macierzy. Obsługiwane typy to: `float32`, `float64`, `complex64` i `complex128`.
Przykład użycia:
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)
[[ 1. 0. 0. 0.]
[ 0. 1.41 0. 0.]
[ 0. 0.70 1.58 0.]
[ 0. 0. 0. 2.]]
Stałe
Smyczkowy | OP_NAME | Nazwa tej operacji znana silnikowi rdzenia TensorFlow |
Metody publiczne
Wyjście < Typ T > | jako wyjście () Zwraca symboliczny uchwyt tensora. |
statyczny <T rozszerza TType > SparseMatrixSparseCholesky | |
Wyjście <?> | wyjście () Rzadki rozkład Choleskiego „wejściowego”. |
Metody dziedziczone
Stałe
publiczny statyczny końcowy ciąg znaków OP_NAME
Nazwa tej operacji znana silnikowi rdzenia TensorFlow
Metody publiczne
publiczne wyjście < TType > asOutput ()
Zwraca symboliczny uchwyt tensora.
Dane wejściowe operacji TensorFlow są wynikami innej operacji TensorFlow. Ta metoda służy do uzyskania symbolicznego uchwytu reprezentującego obliczenia danych wejściowych.
public static SparseMatrixSparseCholesky create (zakres zakresu , argument wejściowy <?>, permutacja operandu <TInt32> , typ Class<T>)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację SparseMatrixSparseCholesky.
Parametry
zakres | aktualny zakres |
---|---|
wejście | `CSRSparseMatrix`. |
permutacja | Macierz permutacji redukującej wypełnienie. |
Powroty
- nowa instancja SparseMatrixSparseCholesky