「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 | |
出力<?> | 出力() 「入力」のスパースコレスキー分解。 |
継承されたメソッド
パブリックメソッド
public Output <オブジェクト> asOutput ()
テンソルのシンボリック ハンドルを返します。
TensorFlow オペレーションへの入力は、別の TensorFlow オペレーションの出力です。このメソッドは、入力の計算を表すシンボリック ハンドルを取得するために使用されます。
public static SparseMatrixSparseCholesky create (スコープスコープ、オペランド<?> 入力、オペランド<Integer> 順列、Class<T> 型)
新しい SparseMatrixSparseCholesky 操作をラップするクラスを作成するファクトリ メソッド。
パラメータ
範囲 | 現在のスコープ |
---|---|
入力 | 「CSRSparseMatrix」。 |
順列 | フィルイン削減置換行列。 |
返品
- SparseMatrixSparseCholesky の新しいインスタンス