当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.raw_ops.SparseMatrixSparseCholesky用法及代码示例


计算 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 的转置(或其共轭转置,如果 typecomplex64complex128 )。

type 参数表示矩阵元素的类型。支持的类型是:float32 , float64 , complex64complex128

使用示例:

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的类型。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.raw_ops.SparseMatrixSparseCholesky。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。