SparseMatrixSparseMatMul

kelas akhir publik SparseMatrixSparseMatMul

Matriks renggang-mengalikan dua matriks CSR `a` dan `b`.

Melakukan perkalian matriks dari matriks renggang `a` dengan matriks renggang `b`; mengembalikan matriks renggang `a * b`, kecuali `a` atau `b` dialihkan atau disatukan.

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

Masukan harus memiliki bentuk yang kompatibel. Artinya, dimensi dalam `a` harus sama dengan dimensi luar `b`. Persyaratan ini disesuaikan berdasarkan apakah `a` atau `b` dialihkan atau disatukan.

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 memiliki peringkat 3, setiap batch CSRSparseMatrices 2D dalam `a` dan `b` harus memiliki bentuk padat yang sama.

Produk matriks renggang mungkin memiliki angka nol (non-struktural). TODO(anudhyan): Pertimbangkan untuk menambahkan atribut boolean untuk mengontrol apakah akan memangkas angka 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)
 
`c_sm_dense_value` menyimpan produk matriks padat:
[[  2.   0.   0.]
      [  0.   0.   0.]
      [ 35.  40.   0.]
      [ -4.   0.   0.]]
 
a: `CSRSparseMatrix`. b: `CSRSparseMatrix` dengan tipe dan peringkat yang sama dengan `a`. type: Jenis `a` dan `b`. transpose_a: Jika Benar, `a` dialihkan sebelum perkalian. transpose_b: Jika Benar, `b` dialihkan sebelum perkalian. adjoint_a: Jika Benar, `a` disambungkan sebelum perkalian. adjoint_b: Jika Benar, `b` disambung sebelum perkalian.

Kelas Bersarang

kelas SparseMatrixSparseMatMul.Options Atribut opsional untuk SparseMatrixSparseMatMul

Metode Publik

SparseMatrixSparseMatMul.Options statis
adjointA (Boolean adjointA)
SparseMatrixSparseMatMul.Options statis
adjointB (Boolean adjointB)
Keluaran <Objek>
sebagai Keluaran ()
Mengembalikan pegangan simbolik tensor.
Keluaran <?>
C ()
Sebuah CSRSparseMatrix.
statis <T> SparseMatrixSparseMatMul
buat ( Lingkup lingkup , Operan <?> a, Operan <?> b, Tipe Kelas<T>, Opsi... opsi)
Metode pabrik untuk membuat kelas yang membungkus operasi SparseMatrixSparseMatMul baru.
SparseMatrixSparseMatMul.Options statis
transposeA (Boolean transposeA)
SparseMatrixSparseMatMul.Options statis
transposeB (Boolean transposeB)

Metode Warisan

Metode Publik

SparseMatrixSparseMatMul.Options adjointA statis publik (Boolean adjointA)

Parameter
berdampinganA Menunjukkan apakah `a` harus ditransposisikan secara konjugasi.

SparseMatrixSparseMatMul.Options adjointB statis publik (Boolean adjointB)

Parameter
berdampinganB Menunjukkan apakah `b` harus ditransposisikan secara konjugasi.

Output publik <Objek> asOutput ()

Mengembalikan pegangan simbolik tensor.

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

Keluaran publik <?> c ()

Sebuah CSRSparseMatrix.

public static SparseMatrixSparseMatMul buat ( Lingkup lingkup, Operan <?> a, Operan <?> b, Tipe Kelas<T>, Opsi... opsi)

Metode pabrik untuk membuat kelas yang membungkus operasi SparseMatrixSparseMatMul baru.

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

SparseMatrixSparseMatMul.Options transposeA statis publik (Boolean transposeA)

Parameter
mengubah urutanA Menunjukkan apakah `a` harus dialihkan.

SparseMatrixSparseMatMul.Options transposeB statis publik (Boolean transposeB)

Parameter
mengubah urutanB Menunjukkan apakah `b` harus dialihkan.