計算 input
的稀疏 Cholesky 分解。
用法
tf.raw_ops.SparseMatrixSparseCholesky(
input, permutation, type, name=None
)
參數
-
input
Tensor
類型為variant
。一個CSRSparseMatrix
。 -
permutation
Tensor
類型為int32
。 fill-in 減少置換矩陣。 -
type
tf.DType
來自:tf.float32, tf.float64, tf.complex64, tf.complex128
。 -
name
操作的名稱(可選)。
返回
-
Tensor
類型為variant
。
計算稀疏矩陣的稀疏 Cholesky 分解,給定的 fill-in 減少排列。
輸入稀疏矩陣和fill-in減少排列permutation
必須具有兼容的形狀。如果稀疏矩陣的秩為 3;使用批次維度 B
,則 permutation
必須為 2 級;具有相同的批次維度 B
。不支持廣播。
此外,permutation
的每個分量向量的長度必須為 N
,包含每個整數 {0, 1, ..., N - 1} 恰好一次,其中 N
是每個分量的行數的稀疏矩陣。
輸入稀疏矩陣的每個分量必須表示一個對稱正定(SPD)矩陣;雖然隻讀取矩陣的下三角部分。如果任何單個組件不是 SPD,則會引發 InvalidArgument 錯誤。
返回的稀疏矩陣與輸入稀疏矩陣具有相同的密集形狀。對於輸入稀疏矩陣的每個分量 A
,對應的輸出稀疏矩陣表示 L
,下三角 Cholesky 因子滿足以下恒等式:
A = L * Lt
其中 Lt 表示 L 的轉置(或其共軛轉置,如果 type
是 complex64
或 complex128
)。
type
參數表示矩陣元素的類型。支持的類型是:float32
, float64
, complex64
和 complex128
。
使用示例:
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
存儲密集 Cholesky 因子:
[[ 1. 0. 0. 0.]
[ 0. 1.41 0. 0.]
[ 0. 0.70 1.58 0.]
[ 0. 0. 0. 2.]]
輸入:A CSRSparseMatrix
。排列:A Tensor
。 type:input
的類型。
相關用法
- Python tf.raw_ops.SparseMatrixSparseMatMul用法及代碼示例
- Python tf.raw_ops.SparseMatrixOrderingAMD用法及代碼示例
- Python tf.raw_ops.SparseMatrixMatMul用法及代碼示例
- Python tf.raw_ops.SparseCrossV2用法及代碼示例
- Python tf.raw_ops.SparseCross用法及代碼示例
- Python tf.raw_ops.SparseConcat用法及代碼示例
- Python tf.raw_ops.SparseSegmentSumWithNumSegments用法及代碼示例
- Python tf.raw_ops.SparseFillEmptyRows用法及代碼示例
- Python tf.raw_ops.SparseSlice用法及代碼示例
- Python tf.raw_ops.SparseToDense用法及代碼示例
- Python tf.raw_ops.SparseSplit用法及代碼示例
- Python tf.raw_ops.SparseSegmentSum用法及代碼示例
- Python tf.raw_ops.SparseCrossHashed用法及代碼示例
- Python tf.raw_ops.SpaceToDepth用法及代碼示例
- Python tf.raw_ops.SpaceToBatch用法及代碼示例
- Python tf.raw_ops.SpaceToBatchND用法及代碼示例
- Python tf.raw_ops.SelfAdjointEigV2用法及代碼示例
- Python tf.raw_ops.Size用法及代碼示例
- Python tf.raw_ops.ScatterUpdate用法及代碼示例
- Python tf.raw_ops.ScatterNdUpdate用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.raw_ops.SparseMatrixSparseCholesky。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。