警告:このAPIは非推奨であり、置き換えが安定した後 TensorFlowの将来のバージョンで削除される予定です。

SparseMatrixSparseMatMul

公共finalクラス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`内の2DCRSSparseMatricesの各バッチは同じ密な形状である必要があります。

スパース行列積には、数値(非構造)のゼロが含まれる場合があります。 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.Options以下のためのオプションの属性SparseMatrixSparseMatMul

パブリックメソッド

静的SparseMatrixSparseMatMul.Options
adjointA (ブールadjointA)
静的SparseMatrixSparseMatMul.Options
adjointB (ブールadjointB)
出力<オブジェクト>
asOutput ()
テンソルのシンボリックハンドルを返します。
出力<?>
C ()
CSRSparseMatrix。
静的<T> SparseMatrixSparseMatMul
作成スコープスコープ、オペランド<?>、オペランド<?> B、クラス<T>タイプ、オプション...オプション)
新しいSparseMatrixSparseMatMul操作をラップするクラスを作成するファクトリメソッド。
静的SparseMatrixSparseMatMul.Options
transposeA (ブールtransposeA)
静的SparseMatrixSparseMatMul.Options
transposeB (ブールtransposeB)

継承されたメソッド

パブリックメソッド

パブリック静的SparseMatrixSparseMatMul.Options adjointA(ブールadjointA)

パラメーター
adjointA `a`を共役転置するかどうかを示します。

パブリック静的SparseMatrixSparseMatMul.Options adjointB(ブールadjointB)

パラメーター
adjointB `b`を共役転置するかどうかを示します。

公共の出力の<Object> asOutput()

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

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

公共の出力<?> C()

CSRSparseMatrix。

パブリック静的はSparseMatrixSparseMatMul作成スコープスコープを、オペランド<?>、オペランド<?> B、クラス<T>タイプ、オプション...オプション)

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

パラメーター
範囲現在のスコープ
NS CSRSparseMatrix。
NS CSRSparseMatrix。
オプションオプションの属性値を運ぶ
戻り値
  • SparseMatrixSparseMatMulの新しいインスタンス

パブリック静的SparseMatrixSparseMatMul.Options transposeA(ブールtransposeA)

パラメーター
transposeA `a`を移調するかどうかを示します。

パブリック静的SparseMatrixSparseMatMul.Options transposeB(ブールtransposeB)

パラメーター
transposeB `b`を移調するかどうかを示します。