تقوم المصفوفة المتفرقة بضرب مصفوفتين للمسؤولية الاجتماعية للشركات `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` منقولًا أو مجاورًا.
تشير المعلمة "type" إلى نوع عناصر المصفوفة. يجب أن يكون لكل من `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)
[[ 2. 0. 0.]
[ 0. 0. 0.]
[ 35. 40. 0.]
[ -4. 0. 0.]]
فئات متداخلة
فصل | SparseMatrixSparseMatMul.Options | السمات الاختيارية لـ SparseMatrixSparseMatMul |
الثوابت
خيط | OP_NAME | اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي |
الأساليب العامة
static SparseMatrixSparseMatMul.Options | المجاورة أ (المجاورة المنطقية أ) |
static SparseMatrixSparseMatMul.Options | المجاور B (المجاور المنطقي B) |
الإخراج < نوع > | كإخراج () إرجاع المقبض الرمزي للموتر. |
الإخراج <؟> | ج () CSRSparseMatrix. |
ثابت <T يمتد TType > SparseMatrixSparseMatMul | |
static SparseMatrixSparseMatMul.Options | النقل A (النقل المنطقي A) |
static SparseMatrixSparseMatMul.Options | النقل B (التحويل المنطقي B) |
الطرق الموروثة
الثوابت
السلسلة النهائية الثابتة العامة OP_NAME
اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي
الأساليب العامة
ساكن عام SparseMatrixSparseMatMul.Options adjointA (منطقي adjointA)
حدود
مجاورأ | يشير إلى ما إذا كان ينبغي نقل `a` بشكل مترافق. |
---|
ثابت عام SparseMatrixSparseMatMul.Options adjointB (منطقي adjointB)
حدود
مجاور ب | يشير إلى ما إذا كان ينبغي نقل `b` بشكل مترافق. |
---|
الإخراج العام <TType> asOutput ()
إرجاع المقبض الرمزي للموتر.
المدخلات إلى عمليات TensorFlow هي مخرجات عملية TensorFlow أخرى. يتم استخدام هذه الطريقة للحصول على مقبض رمزي يمثل حساب الإدخال.
إنشاء SparseMatrixSparseMatMul ثابت عام (نطاق النطاق ، المعامل <?> a، المعامل <?> b، النوع <T>، الخيارات... الخيارات)
طريقة المصنع لإنشاء فئة تغلف عملية SparseMatrixSparseMatMul جديدة.
حدود
نِطَاق | النطاق الحالي |
---|---|
أ | CSRSparseMatrix. |
ب | CSRSparseMatrix. |
خيارات | يحمل قيم السمات الاختيارية |
المرتجعات
- مثيل جديد من SparseMatrixSparseMatMul
ثابت عام SparseMatrixSparseMatMul.Options transposeA (تحويل منطقي A)
حدود
تبديل أ | يشير إلى ما إذا كان ينبغي نقل `a`. |
---|
ثابت عام SparseMatrixSparseMatMul.Options transposeB (تحويل منطقيB)
حدود
تبديل ب | يشير إلى ما إذا كان ينبغي نقل `b`. |
---|