Peringatan: API ini tidak digunakan lagi dan akan dihapus di versi TensorFlow mendatang setelah penggantinya stabil.

SparseMatrixSparseMatMul

public class akhir SparseMatrixSparseMatMul

Sparse-matrix-menggandakan dua matriks CSR `a` dan `b`.

Melakukan perkalian matriks dari matriks jarang `a` dengan matriks jarang `b`; mengembalikan matriks sparse `a * b`, kecuali jika `a` atau `b` ditransposisikan atau digabungkan.

Setiap matriks dapat ditransposisikan atau digabungkan (terkonjugasi dan ditransposisikan) sesuai dengan parameter Boolean `transpose_a`, `adjoint_a`, `transpose_b` dan `adjoint_b`. Paling banyak satu dari `transpose_a` atau `adjoint_a` mungkin Benar. Demikian pula, paling banyak salah satu dari `transpose_b` atau `adjoint_b` mungkin Benar.

Input harus memiliki bentuk yang kompatibel. Artinya, dimensi dalam `a` harus sama dengan dimensi luar `b`. Persyaratan ini disesuaikan menurut apakah `a` atau `b` dialihkan atau digabungkan.

Parameter `type` menunjukkan jenis elemen matriks. Baik `a` dan `b` harus memiliki tipe yang sama. Jenis yang didukung adalah: `float32`, `float64`, `complex64` dan `complex128`.

Baik `a` dan `b` harus memiliki peringkat yang sama. Penyiaran tidak didukung. Jika mereka memiliki peringkat 3, setiap batch 2D CSRSparseMatrices dalam `a` dan `b` harus memiliki bentuk padat yang sama.

Produk matriks jarang mungkin memiliki angka nol (non-struktural). TODO(anudhyan): Pertimbangkan untuk menambahkan atribut boolean untuk mengontrol apakah akan memangkas nol.

Contoh penggunaan:

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)
 
`toko c_sm_dense_value` produk matriks padat:
[[  2.   0.   0.]
      [  0.   0.   0.]
      [ 35.  40.   0.]
      [ -4.   0.   0.]]
 
a: A` CSRSparseMatrix`. b: `CSRSparseMatrix` dengan tipe dan peringkat yang sama dengan `a`. type: Jenis `a` dan `b`. transpose_a: Jika Benar, `a` ditransposisikan sebelum perkalian. transpose_b: Jika Benar, `b` ditransposisikan sebelum perkalian. adjoint_a: Jika Benar, `a` disatukan sebelum perkalian. adjoint_b: Jika Benar, `b` disatukan sebelum perkalian.

Kelas Bersarang

kelas SparseMatrixSparseMatMul.Options Atribut opsional untuk SparseMatrixSparseMatMul

Metode Publik

statis SparseMatrixSparseMatMul.Options
adjointA (Boolean adjointA)
statis SparseMatrixSparseMatMul.Options
adjointB (Boolean adjointB)
Output <Object>
asOutput ()
Mengembalikan pegangan simbolis tensor.
Output <?>
c ()
Sebuah CSRSparseMatrix.
statis <T> SparseMatrixSparseMatMul
membuat ( Lingkup lingkup, Operan <?> a, Operan <?> b, Kelas <T> jenis, Options ... pilihan)
Metode pabrik untuk membuat kelas yang membungkus operasi SparseMatrixSparseMatMul baru.
statis SparseMatrixSparseMatMul.Options
transposeA (Boolean transposeA)
statis SparseMatrixSparseMatMul.Options
transposeB (Boolean transposeB)

Metode yang Diwarisi

Metode Publik

public static SparseMatrixSparseMatMul.Options adjointA (Boolean adjointA)

Parameter
adjointA Menunjukkan apakah `a` harus ditransposisikan konjugasi.

public static SparseMatrixSparseMatMul.Options adjointB (Boolean adjointB)

Parameter
adjointB Menunjukkan apakah `b` harus ditransposisikan konjugasi.

publik Keluaran <Object> asOutput ()

Mengembalikan pegangan simbolis tensor.

Input ke operasi TensorFlow adalah output dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.

publik output <?> c ()

Sebuah CSRSparseMatrix.

public static SparseMatrixSparseMatMul membuat ( Scope lingkup, Operan <?> a, Operan <?> b, Kelas <T> jenis, Options ... pilihan)

Metode pabrik untuk membuat kelas yang membungkus operasi SparseMatrixSparseMatMul baru.

Parameter
cakupan lingkup saat ini
A Sebuah CSRSparseMatrix.
B Sebuah CSRSparseMatrix.
pilihan membawa nilai atribut opsional
Kembali
  • contoh baru dari SparseMatrixSparseMatMul

public static SparseMatrixSparseMatMul.Options transposeA (Boolean transposeA)

Parameter
transposA Menunjukkan apakah `a` harus dialihkan.

public static SparseMatrixSparseMatMul.Options transposeB (Boolean transposeB)

Parameter
transposB Menunjukkan apakah `b` harus dialihkan.