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: 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

Konstanta

Rangkaian OP_NAME Nama operasi ini dikenal dengan mesin inti TensorFlow

Metode Publik

SparseMatrixSparseMatMul.Options statis
adjointA (Boolean adjointA)
SparseMatrixSparseMatMul.Options statis
adjointB (Boolean adjointB)
Keluaran < Tipe T >
sebagai Keluaran ()
Mengembalikan pegangan simbolis tensor.
Keluaran <?>
C ()
Sebuah CSRSparseMatrix.
statis <T memperluas TType > 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

Konstanta

String akhir statis publik OP_NAME

Nama operasi ini dikenal dengan mesin inti TensorFlow

Nilai Konstan: "SparseMatrixSparseMatMul"

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.

Keluaran publik < TType > asOutput ()

Mengembalikan pegangan simbolis 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.