當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。