Menghitung dekomposisi Cholesky yang jarang dari `input`.
Menghitung dekomposisi Sparse Cholesky dari matriks renggang, dengan permutasi pereduksi pengisian yang diberikan.
Matriks renggang masukan dan `permutasi` pengurang pengisian harus memiliki bentuk yang kompatibel. Jika matriks renggang mempunyai rangking 3; dengan dimensi batch `B`, maka `permutasi` harus berada pada peringkat 2; dengan dimensi batch yang sama `B`. Tidak ada dukungan untuk penyiaran.
Selanjutnya, setiap vektor komponen `permutasi` harus memiliki panjang `N`, yang memuat setiap bilangan bulat {0, 1, ..., N - 1} tepat satu kali, dengan `N` adalah jumlah baris setiap komponen dari matriks renggang.
Setiap komponen matriks renggang masukan harus mewakili matriks pasti positif simetris (SPD); meskipun hanya bagian segitiga bawah matriks yang terbaca. Jika ada komponen individual yang bukan SPD, maka kesalahan InvalidArgument akan muncul.
Matriks sparse yang dikembalikan memiliki bentuk padat yang sama dengan matriks sparse masukan. Untuk setiap komponen `A` dari matriks renggang masukan, matriks renggang keluaran yang sesuai mewakili `L`, faktor Cholesky segitiga bawah yang memenuhi identitas berikut:
A = L * Lt
Parameter `type` menunjukkan jenis elemen matriks. Jenis yang didukung adalah: `float32`, `float64`, `complex64` dan `complex128`.
Contoh penggunaan:
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.]]
Konstanta
Rangkaian | OP_NAME | Nama operasi ini dikenal dengan mesin inti TensorFlow |
Metode Publik
Keluaran < Tipe T > | sebagai Keluaran () Mengembalikan pegangan simbolis tensor. |
statis <T memperluas TType > SparseMatrixSparseCholesky | |
Keluaran <?> | keluaran () Dekomposisi `input` Cholesky yang jarang. |
Metode Warisan
Konstanta
String akhir statis publik OP_NAME
Nama operasi ini dikenal dengan mesin inti TensorFlow
Metode Publik
Keluaran publik < TType > asOutput ()
Mengembalikan pegangan simbolis tensor.
Masukan ke operasi TensorFlow adalah keluaran dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.
public static SparseMatrixSparseCholesky buat ( Lingkup lingkup, masukan Operan <?>, permutasi Operan < TInt32 >, tipe Kelas<T>)
Metode pabrik untuk membuat kelas yang membungkus operasi SparseMatrixSparseCholesky baru.
Parameter
cakupan | ruang lingkup saat ini |
---|---|
masukan | Sebuah `CSRSparseMatrix`. |
permutasi | Matriks permutasi pereduksi pengisian. |
Kembali
- contoh baru dari SparseMatrixSparseCholesky