SparseMatrixSparseMatMul

کلاس نهایی عمومی SparseMatrixSparseMatMul

Sparse-matrix-دو ماتریس CSR «a» و «b» را ضرب می کند.

ضرب ماتریسی یک ماتریس پراکنده 'a' را با ماتریس پراکنده 'b' انجام می دهد. یک ماتریس پراکنده «a * b» را برمی‌گرداند، مگر اینکه «a» یا «b» جابه‌جایی یا الحاق شده باشند.

هر ماتریس ممکن است با توجه به پارامترهای بولی «transpose_a»، «adjoint_a»، «transpose_b» و «adjoint_b» جابه‌جا یا متصل شود (مزوج و جابه‌جا شود). حداکثر یکی از «transpose_a» یا «adjoint_a» ممکن است True باشد. به طور مشابه، حداکثر یکی از «transpose_b» یا «adjoint_b» ممکن است True باشد.

ورودی ها باید دارای اشکال سازگار باشند. یعنی بعد درونی «الف» باید برابر با بعد بیرونی «ب» باشد. این نیاز با توجه به اینکه «a» یا «b» جابه‌جا شده باشد یا الحاقی تنظیم می‌شود.

پارامتر "type" نوع عناصر ماتریس را نشان می دهد. هر دو «a» و «b» باید یک نوع داشته باشند. انواع پشتیبانی شده عبارتند از: «float32»، «float64»، «complex64» و «complex128».

هر دو «a» و «b» باید دارای رتبه یکسانی باشند. پخش پشتیبانی نمی شود. اگر دارای رتبه 3 باشند، هر دسته از ماتریس های 2 بعدی CSRSparse در «a» و «b» باید شکل متراکم یکسانی داشته باشند.

حاصل ضرب ماتریس پراکنده ممکن است صفرهای عددی (غیر ساختاری) داشته باشد. TODO(anudhyan): برای کنترل اینکه آیا صفرها را هرس کنیم یا نه، یک ویژگی بولی اضافه کنید.

مثال استفاده:

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» محصول ماتریس متراکم را ذخیره می کند:
[[  2.   0.   0.]
      [  0.   0.   0.]
      [ 35.  40.   0.]
      [ -4.   0.   0.]]
 
الف: یک «CSRSparseMatrix». b: یک «CSRSparseMatrix» با همان نوع و رتبه «a». type: نوع «a» و «b». transpose_a: اگر True باشد، «a» قبل از ضرب جابه‌جا می‌شود. transpose_b: اگر True باشد، «b» قبل از ضرب جابه‌جا می‌شود. adjoint_a: اگر True باشد، "a" قبل از ضرب الحاق می شود. adjoint_b: اگر True باشد، «b» قبل از ضرب الحاق می شود.

کلاس های تو در تو

کلاس SparseMatrixSparseMatMul.Options ویژگی های اختیاری برای SparseMatrixSparseMatMul

روش های عمومی

استاتیک SparseMatrixSparseMatMul.Options
adjointA (Boolean adjointA)
استاتیک SparseMatrixSparseMatMul.Options
adjointB (Boolean adjointB)
خروجی <Object>
asOutput ()
دسته نمادین یک تانسور را برمی‌گرداند.
خروجی <?>
ج ()
یک CSRSparseMatrix.
استاتیک <T> SparseMatrixSparseMatMul
ایجاد ( دامنه دامنه ، عملوند <?> a، عملوند <?> b، نوع کلاس<T>، گزینه‌ها... گزینه‌ها)
روش کارخانه برای ایجاد کلاسی که یک عملیات جدید SparseMatrixSparseMatMul را بسته بندی می کند.
استاتیک SparseMatrixSparseMatMul.Options
transposeA (transposeA Boolean)
استاتیک SparseMatrixSparseMatMul.Options
transposeB (transposeB)

روش های ارثی

روش های عمومی

عمومی استاتیک SparseMatrixSparseMatMul.Options adjointA (Boolean adjointA)

پارامترها
adjointA نشان می دهد که آیا «a» باید به صورت مزدوج منتقل شود یا خیر.

عمومی استاتیک SparseMatrixSparseMatMul.Options adjointB (Boolean adjointB)

پارامترها
adjointB نشان می دهد که آیا «b» باید به صورت مزدوج منتقل شود یا خیر.

خروجی عمومی <Object> asOutput ()

دسته نمادین یک تانسور را برمی‌گرداند.

ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.

خروجی عمومی <?> c ()

یک CSRSparseMatrix.

ایجاد عمومی ثابت SparseMatrixSparseMatMul ( دامنه دامنه ، عملوند <?> a، عملوند <?> b، نوع کلاس<T>، گزینه‌ها... گزینه‌ها)

روش کارخانه برای ایجاد کلاسی که یک عملیات جدید SparseMatrixSparseMatMul را بسته بندی می کند.

پارامترها
دامنه محدوده فعلی
الف یک CSRSparseMatrix.
ب یک CSRSparseMatrix.
گزینه ها مقادیر ویژگی های اختیاری را حمل می کند
برمی گرداند
  • یک نمونه جدید از SparseMatrixSparseMatMul

عمومی استاتیک SparseMatrixSparseMatMul.Options transposeA (transposeA Boolean)

پارامترها
انتقال A نشان می دهد که آیا «a» باید جابجا شود یا خیر.

عمومی استاتیک SparseMatrixSparseMatMul.Options transposeB (transposeB)

پارامترها
transposeB نشان می‌دهد که «b» باید جابه‌جا شود یا خیر.