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 çarpımını saklar:
[[  2.   0.   0.]
      [  0.   0.   0.]
      [ 35.  40.   0.]
      [ -4.   0.   0.]]
 
a: Bir 'CSRS Ayrıştırma Matrisi'. 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

Sabitler

Sicim OP_NAME Bu operasyonun TensorFlow çekirdek motoru tarafından bilinen adı

Genel Yöntemler

statik SparseMatrixSparseMatMul.Options
ekA (Boolean ekA)
statik SparseMatrixSparseMatMul.Options
ekB (Boolean ekB)
Çıkış < TType >
Çıkış olarak ()
Tensörün sembolik tutamacını döndürür.
Çıkış <?>
C ()
Bir CSRSparseMatrix.
static <T, TType'ı genişletir > 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

Sabitler

genel statik son Dize OP_NAME

Bu operasyonun TensorFlow çekirdek motoru tarafından bilinen adı

Sabit Değer: "SparseMatrixSparseMatMul"

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.

genel Çıkış < TType > asOutput ()

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
İade
  • 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 devrikB (Boolean devrikB)

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