אזהרה: API זו ברמה נמוכה יוסרה בגרסה עתידית של TensorFlow לאחר ההחלפה יציבה.

SparseMatrixSparseMatMul

SparseMatrixSparseMatMul המעמד הסופי הציבור

מטריצה ​​דלילה-מכפילה שתי מטריצות CSR 'a' ו-'b'.

מבצע כפל מטריצה ​​של מטריצה ​​דלילה `a` עם מטריצה ​​דלילה `b`; מחזירה מטריצה ​​דלילה `a * b`, אלא אם כן `a` או `b` עוברים טרנספוזיציה או צמודים.

ניתן לבצע טרנספוזיציה או חיבור של כל מטריצה ​​(מצומדת והעברה) לפי הפרמטרים הבוליאניים `transpose_a`, `adjoint_a`, `transpose_b` ו-`adjoint_b`. לכל היותר אחד מ-'transpose_a' או 'adjoint_a' עשוי להיות נכון. באופן דומה, לכל היותר אחד מ-'transpose_b' או 'adjoint_b' עשוי להיות נכון.

הקלט חייב להיות בעל צורות תואמות. כלומר, הממד הפנימי של `a` חייב להיות שווה למימד החיצוני של `b`. דרישה זו מותאמת בהתאם לשאלה אם 'a' או 'b' מועברים או מצמידים.

הפרמטר 'סוג' מציין את סוג רכיבי המטריצה. גם `a` וגם `b` חייבים להיות בעלי אותו סוג. הסוגים הנתמכים הם: `float32`, `float64`, `complex64` ו-`complex128`.

גם `a` וגם `b` חייבים להיות בעלי אותה דרגה. השידור אינו נתמך. אם יש להם דרגה 3, כל אצווה של CSRSparseMatrices דו-ממדיים בתוך `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`. ב: `CSRSparseMatrix` עם אותו סוג ודירוג כמו `a`. סוג: הסוג של 'a' וגם של 'b'. transpose_a: אם נכון, 'a' מוחלף לפני הכפל. transpose_b: אם נכון, 'b' הועבר לפני הכפל. adjoint_a: אם נכון, `a` צמוד לפני הכפל. adjoint_b: אם נכון, 'b' צמוד לפני הכפל.

כיתות מקוננות

מעמד SparseMatrixSparseMatMul.Options מאפיינים אופציונליים עבור SparseMatrixSparseMatMul

שיטות ציבוריות

סטטי SparseMatrixSparseMatMul.Options
adjointA (בוליאני adjointA)
סטטי SparseMatrixSparseMatMul.Options
adjointB (בוליאני adjointB)
פלט <object>
asOutput ()
מחזירה את הידית הסמלית של טנזור.
פלט <?>
ג ()
CSRSparseMatrix.
סטטי <T> SparseMatrixSparseMatMul
ליצור ( היקף היקף, האופרנד <?> a, האופרנד <?> B, מחלקה <T> סוג, אפשרויות ... אופציות)
שיטת מפעל ליצירת מחלקה העוטפת פעולת SparseMatrixSparseMatMul חדשה.
סטטי SparseMatrixSparseMatMul.Options
transposeA (בוליאני transposeA)
סטטי SparseMatrixSparseMatMul.Options
transposeB (בוליאני transposeB)

שיטות בירושה

שיטות ציבוריות

סטטי הציבור SparseMatrixSparseMatMul.Options adjointA (בוליאני adjointA)

פרמטרים
adjointA מציין אם יש לבצע טרנספוזיציה של 'a'.

סטטי הציבור SparseMatrixSparseMatMul.Options adjointB (בוליאני adjointB)

פרמטרים
צמוד ב מציין אם יש לבצע טרנספוזיציה מצומדת של 'b'.

הציבור פלט <object> asOutput ()

מחזירה את הידית הסמלית של טנזור.

כניסות לפעולות TensorFlow הן פלט של פעולת TensorFlow אחרת. שיטה זו משמשת לקבלת ידית סמלית המייצגת את חישוב הקלט.

הציבור פלט <?> ג ()

CSRSparseMatrix.

סטטי הציבור SparseMatrixSparseMatMul ליצור ( היקף היקף, האופרנד <?> a, האופרנד <?> B, מחלקה <T> סוג, אפשרויות ... אופציות)

שיטת מפעל ליצירת מחלקה העוטפת פעולת SparseMatrixSparseMatMul חדשה.

פרמטרים
תְחוּם ההיקף הנוכחי
א CSRSparseMatrix.
ב CSRSparseMatrix.
אפשרויות נושא ערכי תכונות אופציונליות
החזרות
  • מופע חדש של SparseMatrixSparseMatMul

סטטי הציבור SparseMatrixSparseMatMul.Options transposeA (בוליאני transposeA)

פרמטרים
transposeA מציין אם יש להעביר 'a'.

סטטי הציבור SparseMatrixSparseMatMul.Options transposeB (בוליאני transposeB)

פרמטרים
transposeB מציין אם יש להעביר את 'b'.