SparseMatrixSparseCholesky

パブリック最終クラスSparseMatrixSparseCholesky

「input」のスパースコレスキー分解を計算します。

指定されたフィルイン削減順列を使用して、疎行列の疎コレスキー分解を計算します。

入力スパース行列とフィルイン削減置換 `permutation` は互換性のある形状を持っていなければなりません。スパース行列のランクが 3 の場合。バッチ次元が「B」の場合、「順列」はランク 2 でなければなりません。同じバッチ次元「B」を持ちます。ブロードキャストのサポートはありません。

さらに、「順列」の各成分ベクトルは長さ「N」でなければならず、各整数 {0, 1, ..., N - 1} を 1 回だけ含む必要があります。ここで、「N」は各成分の行数です。疎行列の。

入力スパース行列の各成分は対称正定値 (SPD) 行列を表す必要があります。ただし、行列の下三角部分のみが読み取られます。個々のコンポーネントが SPD ではない場合、InvalidArgument エラーがスローされます。

返されたスパース行列は、入力スパース行列と同じ密な形状を持ちます。入力スパース行列の各コンポーネント 'A' について、対応する出力スパース行列は 'L' を表します。これは、次の恒等式を満たす下三角コレスキー因子です:

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` は密コレスキー係数を格納します:
[[  1.  0.    0.    0.]
      [  0.  1.41  0.    0.]
      [  0.  0.70  1.58  0.]
      [  0.  0.    0.    2.]]
 
入力: `CSRSparseMatrix`。順列: `Tensor`。 type: 「input」のタイプ。

パブリックメソッド

出力<オブジェクト>
asOutput ()
テンソルのシンボリック ハンドルを返します。
静的 <T> SparseMatrixSparseCholesky
create (スコープスコープ、オペランド<?> 入力、オペランド<Integer> 順列、Class<T> 型)
新しい SparseMatrixSparseCholesky 操作をラップするクラスを作成するファクトリ メソッド。
出力<?>
出力()
「入力」のスパースコレスキー分解。

継承されたメソッド

パブリックメソッド

public Output <オブジェクト> asOutput ()

テンソルのシンボリック ハンドルを返します。

TensorFlow オペレーションへの入力は、別の TensorFlow オペレーションの出力です。このメソッドは、入力の計算を表すシンボリック ハンドルを取得するために使用されます。

public static SparseMatrixSparseCholesky create (スコープスコープ、オペランド<?> 入力、オペランド<Integer> 順列、Class<T> 型)

新しい SparseMatrixSparseCholesky 操作をラップするクラスを作成するファクトリ メソッド。

パラメーター
範囲現在のスコープ
入力「CSRSparseMatrix」。
順列フィルイン削減置換行列。
戻り値
  • SparseMatrixSparseCholesky の新しいインスタンス

public出力<?>出力()

「入力」のスパースコレスキー分解。