SparseMatrixSparseMatMul

パブリック最終クラスSparseMatrixSparseMatMul

スパース行列は、2 つの CSR 行列「a」と「b」を乗算します。

スパース行列 'a' とスパース行列 'b' の行列乗算を実行します。 'a' または 'b' が転置または隣接していない限り、スパース行列 'a * b' を返します。

各行列は、ブール パラメータ 'transpose_a'、'adjoint_a'、'transpose_b'、および 'adjoint_b' に従って転置または随伴 (共役および転置) できます。 `transpose_a` または `adjoint_a` の最大でも 1 つが True になります。同様に、`transpose_b` または `adjoint_b` の最大 1 つが True になる可能性があります。

入力は互換性のある形状を持っている必要があります。つまり、「a」の内側の寸法は「b」の外側の寸法と等しくなければなりません。この要件は、「a」または「b」のいずれかが転置されるか隣接されるかに応じて調整されます。

「type」パラメータは行列要素のタイプを示します。 `a` と `b` は両方とも同じ型でなければなりません。サポートされている型は、`float32`、`float64`、`complex64`、および `complex128` です。

「a」と「b」は両方とも同じランクでなければなりません。ブロードキャストはサポートされていません。ランク 3 の場合、「a」と「b」内の 2D CSRSparseMatrices の各バッチは同じ密な形状を持つ必要があります。

スパース行列積には、数値 (非構造) ゼロが含まれる場合があります。 TODO(anudhyan): ゼロを削除するかどうかを制御するブール属性を追加することを検討してください。

使用例:

from tensorflow.python.ops.linalg.sparse import sparse_csr_matrix_ops
 
     a_indices = np.array([[0, 0], [2, 3], [2, 4], [3, 0]])
     a_values = np.array([1.0, 5.0, -1.0, -2.0], np.float32)
     a_dense_shape = [4, 5]
 
     b_indices = np.array([[0, 0], [3, 0], [3, 1]])
     b_values = np.array([2.0, 7.0, 8.0], np.float32)
     b_dense_shape = [5, 3]
 
     with tf.Session() as sess:
       # Define (COO format) Sparse Tensors over Numpy arrays
       a_st = tf.sparse.SparseTensor(a_indices, a_values, a_dense_shape)
       b_st = tf.sparse.SparseTensor(b_indices, b_values, b_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)
       b_sm = sparse_csr_matrix_ops.sparse_tensor_to_csr_sparse_matrix(
           b_st.indices, b_st.values, b_st.dense_shape)
 
       # Compute the CSR SparseMatrix matrix multiplication
       c_sm = sparse_csr_matrix_ops.sparse_matrix_sparse_mat_mul(
           a=a_sm, b=b_sm, type=tf.float32)
 
       # Convert the CSR SparseMatrix product to a dense Tensor
       c_sm_dense = sparse_csr_matrix_ops.csr_sparse_matrix_to_dense(
           c_sm, tf.float32)
       # Evaluate the dense Tensor value
       c_sm_dense_value = sess.run(c_sm_dense)
 
`c_sm_dense_value` には密行列積が格納されます。
[[  2.   0.   0.]
      [  0.   0.   0.]
      [ 35.  40.   0.]
      [ -4.   0.   0.]]
 
a: `CSRSparseMatrix`。 b: `a` と同じタイプおよびランクを持つ `CSRSparseMatrix`。 type: `a` と `b` の両方の型。 transpose_a: True の場合、乗算の前に 'a' が転置されます。 transpose_b: True の場合、乗算の前に「b」が転置されます。 adjoint_a: True の場合、乗算の前に 'a' が隣接します。 adjoint_b: True の場合、乗算の前に「b」が隣接します。

ネストされたクラス

クラスSparseMatrixSparseMatMul.オプションSparseMatrixSparseMatMulのオプションの属性

定数

OP_NAME TensorFlow コア エンジンによって認識される、この演算の名前

パブリックメソッド

静的SparseMatrixSparseMatMul.Options
adjointA (ブール型 adjointA)
静的SparseMatrixSparseMatMul.Options
adjointB (ブール型 adjointB)
出力< TType >
asOutput ()
テンソルのシンボリック ハンドルを返します。
出力<?>
c ()
CSRSparseMatrix。
static <T extends TType > SparseMatrixSparseMatMul
create (スコープscope、オペランド<?> a、オペランド<?> b、Class<T>タイプ、オプション...オプション)
新しい SparseMatrixSparseMatMul オペレーションをラップするクラスを作成するファクトリ メソッド。
静的SparseMatrixSparseMatMul.Options
transposeA (ブールtransposeA)
静的SparseMatrixSparseMatMul.Options
transposeB (ブールtransposeB)

継承されたメソッド

定数

パブリック静的最終文字列OP_NAME

TensorFlow コア エンジンによって認識される、この演算の名前

定数値: "SparseMatrixSparseMatMul"

パブリックメソッド

public static SparseMatrixSparseMatMul.Options adjointA (ブール型 adjointA)

パラメータ
随伴A 「a」を共役転置するかどうかを示します。

public static SparseMatrixSparseMatMul.Options adjointB (ブール型 adjointB)

パラメータ
随伴B 「b」を共役転置するかどうかを示します。

public Output < TType > asOutput ()

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

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

public出力<?> c ()

CSRSparseMatrix。

public static SparseMatrixSparseMatMul create (スコープスコープ、オペランド<?> a、オペランド<?> b、Class<T> タイプ、オプション...オプション)

新しい SparseMatrixSparseMatMul オペレーションをラップするクラスを作成するファクトリ メソッド。

パラメータ
範囲現在のスコープ
あるCSRSparseMatrix。
b CSRSparseMatrix。
オプションオプションの属性値を持ちます
返品
  • SparseMatrixSparseMatMul の新しいインスタンス

public static SparseMatrixSparseMatMul.Options transposeA (ブール transposeA)

パラメータ
トランスポーズA 「a」を転置するかどうかを示します。

public static SparseMatrixSparseMatMul.Options transposeB (ブール transposeB)

パラメータ
トランスポーズB 「b」を転置するかどうかを示します。