SparseMatrixSparseMatMul

halka açık final dersi SparseMatrixSparseMatMul

Seyrek matris, iki CSR matrisi 'a' ve 'b'yi çarpar.

Seyrek bir matris "a" ile seyrek bir matris "b"nin matris çarpımını gerçekleştirir; 'a' veya 'b' yer değiştirme veya bitişik olmadıkça seyrek bir matris 'a * b' döndürür.

Her matris, 'transpose_a', 'adjoint_a', 'transpose_b' ve 'adjoint_b' Boolean parametrelerine göre transpoze edilebilir veya eklenebilir (eşleniklenebilir ve transpoze edilebilir). En fazla "transpose_a" veya "adjoint_a"dan biri Doğru olabilir. Benzer şekilde, "transpose_b" veya "adjoint_b"den en fazla biri Doğru olabilir.

Girişlerin uyumlu şekillere sahip olması gerekir. Yani 'a'nın iç boyutu 'b'nin dış boyutuna eşit olmalıdır. Bu gereklilik, 'a' veya 'b'nin aktarılmış veya bitişik olmasına göre ayarlanır.

'type' parametresi matris elemanlarının tipini belirtir. Hem "a" hem de "b" aynı türde olmalıdır. Desteklenen türler şunlardır: 'float32', 'float64', 'complex64' ve 'complex128'.

Hem 'a' hem de 'b' aynı sıralamaya sahip olmalıdır. Yayın desteklenmiyor. Dereceleri 3 ise, 'a' ve 'b' içindeki her 2D CSRSparseMatrices grubu aynı yoğun şekle sahip olmalıdır.

Seyrek matris çarpımı sayısal (yapısal olmayan) sıfırlara sahip olabilir. YAPILACAKLAR(anudhyan): Sıfırların budayıp budamayacağını kontrol etmek için bir boole özelliği eklemeyi düşünün.

Kullanım örneği:

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` yoğun matris ürününü saklar:
[[  2.   0.   0.]
      [  0.   0.   0.]
      [ 35.  40.   0.]
      [ -4.   0.   0.]]
 
a: Bir `CSRSparseMatrix`. b: "a" ile aynı tür ve sıralamaya sahip bir "CSRSparseMatrix". type: Hem 'a' hem de 'b'nin türü. transpose_a: Doğruysa, çarpmadan önce aktarılan `a'. transpose_b: Doğruysa, çarpmadan önce aktarılan 'b'. adjoint_a: Doğruysa, çarpmadan önce bitişik olan `a'. adjoint_b: Doğruysa, 'b' çarpmadan önce bitişiktir.

İç İçe Sınıflar

sınıf SparseMatrixSparseMatMul.Options SparseMatrixSparseMatMul için isteğe bağlı özellikler

Genel Yöntemler

statik SparseMatrixSparseMatMul.Options
ekA (Boolean ekA)
statik SparseMatrixSparseMatMul.Options
ekB (Boolean ekB)
Çıkış <Nesne>
Çıkış olarak ()
Bir tensörün sembolik tutamacını döndürür.
Çıkış <?>
C ()
Bir CSRSparseMatrix.
statik <T> SparseMatrixSparseMatMul
create ( Kapsam kapsamı, İşlenen <?> a, İşlenen <?> b, Sınıf<T> türü, Seçenekler... seçenekler)
Yeni bir SparseMatrixSparseMatMul işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi.
statik SparseMatrixSparseMatMul.Options
devrikA (Boolean devrikA)
statik SparseMatrixSparseMatMul.Options
devrikB (Boolean devrikB)

Kalıtsal Yöntemler

Genel Yöntemler

public static SparseMatrixSparseMatMul.Options adjointA (Boole adjointA)

Parametreler
ekA 'a'nın eşlenik transpoze edilip edilmeyeceğini belirtir.

public static SparseMatrixSparseMatMul.Options adjointB (Boole adjointB)

Parametreler
ekB 'b'nin eşlenik transpoze edilip edilmeyeceğini belirtir.

public Output <Object> asOutput ()

Bir tensörün sembolik tutamacını döndürür.

TensorFlow işlemlerinin girdileri, başka bir TensorFlow işleminin çıktılarıdır. Bu yöntem, girişin hesaplanmasını temsil eden sembolik bir tanıtıcı elde etmek için kullanılır.

genel Çıkış <?> c ()

Bir CSRSparseMatrix.

public static SparseMatrixSparseMatMul create ( Kapsam kapsamı, İşlenen <?> a, İşlenen <?> b, Sınıf<T> türü, Seçenekler... seçenekler)

Yeni bir SparseMatrixSparseMatMul işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi.

Parametreler
kapsam mevcut kapsam
A Bir CSRSparseMatrix.
B Bir CSRSparseMatrix.
seçenekler isteğe bağlı nitelik değerlerini taşır
İadeler
  • SparseMatrixSparseMatMul'un yeni bir örneği

public static SparseMatrixSparseMatMul.Options transposeA (Boolean transposeA)

Parametreler
A'yı devrik 'a'nın aktarımının gerekip gerekmediğini belirtir.

public static SparseMatrixSparseMatMul.Options transpozeB (Boolean transpozeB)

Parametreler
devrik B 'b'nin aktarımının gerekip gerekmediğini belirtir.