计算 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。