「input」の近似最小次数 (AMD) 順序を計算します。
スパース行列の近似最小次数 (AMD) 順序を計算します。
返された順列を使用して、指定されたスパース行列の行と列を並べ替えることができます。これにより、通常、置換されたスパース行列のスパース コレスキー (または他の分解) では、元の行列の分解と比較してゼロの埋め込みが少なくなります。
入力スパース行列はランク 2 またはランク 3 を持つ可能性があります。出力テンソルは、入力と同じバッチ形状で、それぞれランク 1 または 2 を持ちます。
入力スパース行列の各成分は正方対称行列を表す必要があります。マトリックスの下三角部分のみが読み取られます。スパース行列の値は返される順列には影響せず、スパース行列のスパース パターンのみが使用されます。したがって、単一の AMD 順序付けは、同じスパース パターンだが異なる値を持つスパース行列のコレスキー分解に再利用できます。
出力順列の各バッチ コンポーネントは「N」個の要素の順列を表し、入力スパース行列コンポーネントにはそれぞれ「N」行があります。つまり、コンポーネントには、各整数 `{0, .. N-1}` が 1 回だけ含まれます。 「i」番目の要素は、「i」番目の行がマップされる行インデックスを表します。
使用例:
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 AMD Ordering for the CSR SparseMatrix.
ordering_amd = sparse_csr_matrix_ops.sparse_matrix_ordering_amd(sparse_matrix)
ordering_amd_value = sess.run(ordering_amd)
`ordering_amd_value` には、AMD 順序付け `[1 2 3 0]` が格納されます。入力: `CSRSparseMatrix`。
定数
弦 | OP_NAME | TensorFlow コア エンジンによって認識される、この演算の名前 |
パブリックメソッド
出力< TInt32 > | asOutput () テンソルのシンボリック ハンドルを返します。 |
静的SparseMatrixOrderingAMD | |
出力< TInt32 > | 出力() 「入力」の近似最小次数 (AMD) 順序付け。 |
継承されたメソッド
定数
パブリック静的最終文字列OP_NAME
TensorFlow コア エンジンによって認識される、この演算の名前
パブリックメソッド
public Output < TInt32 > asOutput ()
テンソルのシンボリック ハンドルを返します。
TensorFlow オペレーションへの入力は、別の TensorFlow オペレーションの出力です。このメソッドは、入力の計算を表すシンボリック ハンドルを取得するために使用されます。
public static SparseMatrixOrderingAMD create (スコープscope、オペランド<?>入力)
新しい SparseMatrixOrderingAMD オペレーションをラップするクラスを作成するためのファクトリ メソッド。
パラメータ
範囲 | 現在のスコープ |
---|---|
入力 | 「CSRSparseMatrix」。 |
返品
- SparseMatrixOrderingAMD の新しいインスタンス