SparseMatrixSparseMatMul

الطبقة النهائية العامة SparseMatrixSparseMatMul

تقوم المصفوفة المتفرقة بضرب مصفوفتين للمسؤولية الاجتماعية للشركات `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)
 
تقوم `c_sm_dense_value` بتخزين منتج المصفوفة الكثيفة:
[[  2.   0.   0.]
      [  0.   0.   0.]
      [ 35.  40.   0.]
      [ -4.   0.   0.]]
 
أ: "CSRSparseMatrix". ب: `CSRSparseMatrix` بنفس النوع والرتبة مثل `a`. النوع: نوع كل من `a` و`b`. transpose_a: إذا كان صحيحًا، يتم نقل `a` قبل الضرب. transpose_b: إذا كان صحيحًا، يتم نقل `b` قبل الضرب. مجاورة_أ: إذا كانت صحيحة، مجاورة قبل الضرب. adjoint_b: إذا كان صحيحا، `b` مجاورة قبل الضرب.

فئات متداخلة

فصل SparseMatrixSparseMatMul.Options السمات الاختيارية لـ SparseMatrixSparseMatMul

الثوابت

خيط OP_NAME اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي

الأساليب العامة

static SparseMatrixSparseMatMul.Options
المجاورة أ (المجاورة المنطقية أ)
static SparseMatrixSparseMatMul.Options
المجاور B (المجاور المنطقي B)
الإخراج < نوع >
كإخراج ()
إرجاع المقبض الرمزي للموتر.
الإخراج <؟>
ج ()
CSRSparseMatrix.
ثابت <T يمتد TType > SparseMatrixSparseMatMul
إنشاء (نطاق النطاق ، المعامل <?> أ، المعامل <?> ب، نوع الفئة <T>، خيارات... خيارات)
طريقة المصنع لإنشاء فئة تغلف عملية SparseMatrixSparseMatMul جديدة.
static SparseMatrixSparseMatMul.Options
النقل A (النقل المنطقي A)
static SparseMatrixSparseMatMul.Options
النقل B (التحويل المنطقي B)

الطرق الموروثة

الثوابت

السلسلة النهائية الثابتة العامة OP_NAME

اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي

القيمة الثابتة: "SparseMatrixSparseMatMul"

الأساليب العامة

ساكن عام SparseMatrixSparseMatMul.Options adjointA (منطقي adjointA)

حدود
مجاورأ يشير إلى ما إذا كان ينبغي نقل `a` بشكل مترافق.

ثابت عام SparseMatrixSparseMatMul.Options adjointB (منطقي adjointB)

حدود
مجاور ب يشير إلى ما إذا كان ينبغي نقل `b` بشكل مترافق.

الإخراج العام <TType> asOutput ()

إرجاع المقبض الرمزي للموتر.

المدخلات إلى عمليات TensorFlow هي مخرجات عملية TensorFlow أخرى. يتم استخدام هذه الطريقة للحصول على مقبض رمزي يمثل حساب الإدخال.

الإخراج العام <?> ج ()

CSRSparseMatrix.

إنشاء SparseMatrixSparseMatMul ثابت عام (نطاق النطاق ، المعامل <?> a، المعامل <?> b، النوع <T>، الخيارات... الخيارات)

طريقة المصنع لإنشاء فئة تغلف عملية SparseMatrixSparseMatMul جديدة.

حدود
نِطَاق النطاق الحالي
أ CSRSparseMatrix.
ب CSRSparseMatrix.
خيارات يحمل قيم السمات الاختيارية
المرتجعات
  • مثيل جديد من SparseMatrixSparseMatMul

ثابت عام SparseMatrixSparseMatMul.Options transposeA (تحويل منطقي A)

حدود
تبديل أ يشير إلى ما إذا كان ينبغي نقل `a`.

ثابت عام SparseMatrixSparseMatMul.Options transposeB (تحويل منطقيB)

حدود
تبديل ب يشير إلى ما إذا كان ينبغي نقل `b`.