هشدار: این API منسوخ شده است و پس از پایدار شدن جایگزینی، در نسخه بعدی TensorFlow حذف خواهد شد.

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.]]
 
A:` CSRSparseMatrix`. b: یک «CSRSparseMatrix» با همان نوع و رتبه «a». نوع: نوع «a» و «b». transpose_a: اگر True باشد، «a» قبل از ضرب جابه‌جا می‌شود. transpose_b: اگر True باشد، «b» قبل از ضرب جابه‌جا می‌شود. adjoint_a: اگر True باشد، "a" قبل از ضرب الحاق می شود. adjoint_b: اگر True باشد، «b» قبل از ضرب الحاق می شود.

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

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

روش های عمومی

شخص SparseMatrixSparseMatMul.Options
adjointA (بولی adjointA)
شخص SparseMatrixSparseMatMul.Options
adjointB (بولی adjointB)
خروجی <شی>
asOutput ()
دسته نمادین یک تانسور را برمی‌گرداند.
خروجی <؟>
ج ()
یک CSRSparseMatrix.
شخص <T> SparseMatrixSparseMatMul
ایجاد ( محدوده دامنه، عملوند <؟> یک عملوند <؟> B، کلاس <T> نوع، گزینه ها ... گزینه ها)
روش کارخانه برای ایجاد کلاسی که یک عملیات جدید SparseMatrixSparseMatMul را بسته بندی می کند.
شخص SparseMatrixSparseMatMul.Options
transposeA (بولی transposeA)
شخص SparseMatrixSparseMatMul.Options
transposeB (بولی transposeB)

روش های ارثی

روش های عمومی

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

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

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

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

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

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

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

عمومی خروجی <؟> ج ()

یک CSRSparseMatrix.

عمومی استاتیک SparseMatrixSparseMatMul ایجاد ( محدوده دامنه، عملوند <؟> یک عملوند <؟> B، کلاس <T> نوع، گزینه ها ... گزینه ها)

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

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

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

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

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

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