स्पार्स-मैट्रिक्स-दो सीएसआर मैट्रिक्स `ए` और `बी` को गुणा करता है।
एक विरल मैट्रिक्स `ए` का एक विरल मैट्रिक्स `बी` के साथ मैट्रिक्स गुणन करता है; एक विरल मैट्रिक्स `ए * बी` लौटाता है, जब तक कि `ए` या `बी` को स्थानांतरित या संलग्न नहीं किया जाता है।
प्रत्येक मैट्रिक्स को बूलियन पैरामीटर `ट्रांसपोज़_ए`, `एडजॉइंट_ए`, `ट्रांसपोज़_बी` और `एडजॉइंट_बी` के अनुसार ट्रांसपोज़्ड या एडजॉइंट (संयुग्मित और ट्रांसपोज़्ड) किया जा सकता है। अधिक से अधिक `transpose_a` या `adjoint_a` में से एक सत्य हो सकता है। इसी प्रकार, अधिक से अधिक `transpose_b` या `adjoint_b` में से एक सत्य हो सकता है।
इनपुट में संगत आकार होने चाहिए. अर्थात्, `ए` का आंतरिक आयाम `बी` के बाहरी आयाम के बराबर होना चाहिए। इस आवश्यकता को इस अनुसार समायोजित किया जाता है कि या तो `ए` या `बी` स्थानांतरित किया गया है या जुड़ा हुआ है।
`प्रकार` पैरामीटर मैट्रिक्स तत्वों के प्रकार को दर्शाता है। `a` और `b` दोनों का प्रकार एक ही होना चाहिए। समर्थित प्रकार हैं: `फ्लोट32`, `फ्लोट64`, `कॉम्प्लेक्स64` और `कॉम्प्लेक्स128`।
`ए` और `बी` दोनों की रैंक समान होनी चाहिए। प्रसारण समर्थित नहीं है. यदि उनकी रैंक 3 है, तो `a` और `b` के भीतर 2D CSRSparseMatrices के प्रत्येक बैच का सघन आकार समान होना चाहिए।
विरल मैट्रिक्स उत्पाद में संख्यात्मक (गैर-संरचनात्मक) शून्य हो सकते हैं। TODO(अनुध्यान): यह नियंत्रित करने के लिए कि शून्य की छंटाई करनी है या नहीं, एक बूलियन विशेषता जोड़ने पर विचार करें।
उपयोग उदाहरण:
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` के समान है। प्रकार: `ए` और `बी` दोनों का प्रकार। ट्रांसपोज़_ए: यदि सत्य है, तो गुणन से पहले `ए` ट्रांसपोज़ किया गया। ट्रांसपोज़_बी: यदि सत्य है, तो गुणन से पहले `बी` ट्रांसपोज़ किया गया। adjoint_a: यदि सत्य है, तो `a` गुणन से पहले जुड़ा हुआ है। adjoint_b: यदि सत्य है, तो `b` गुणन से पहले जुड़ा हुआ है। नेस्टेड क्लासेस
कक्षा | SparseMatrixSparseMatMul.विकल्प | SparseMatrixSparseMatMul के लिए वैकल्पिक विशेषताएँ |
सार्वजनिक तरीके
स्थिर SparseMatrixSparseMatMul.Options | एडजॉइंटए (बूलियन एडजॉइंटए) |
स्थिर SparseMatrixSparseMatMul.Options | एडजॉइंटबी (बूलियन एडजॉइंटबी) |
आउटपुट <ऑब्जेक्ट> | आउटपुट के रूप में () टेंसर का प्रतीकात्मक हैंडल लौटाता है। |
आउटपुट <?> | सी () एक CSRSparseMatrix. |
स्थिर <T> SparseMatrixSparseMatMul | |
स्थिर SparseMatrixSparseMatMul.Options | ट्रांसपोज़ए (बूलियन ट्रांसपोज़ए) |
स्थिर SparseMatrixSparseMatMul.Options | ट्रांसपोज़बी (बूलियन ट्रांसपोज़बी) |
विरासत में मिली विधियाँ
सार्वजनिक तरीके
सार्वजनिक स्थैतिक SparseMatrixSparseMatMul.Options adjointA (बूलियन adjointA)
पैरामीटर
सहायक | इंगित करता है कि क्या `ए` को संयुग्म-ट्रांसपोज़ किया जाना चाहिए। |
---|
सार्वजनिक स्थैतिक SparseMatrixSparseMatMul.Options adjointB (बूलियन adjointB)
पैरामीटर
adjointB | इंगित करता है कि क्या `बी` को संयुग्म-ट्रांसपोज़ किया जाना चाहिए। |
---|
सार्वजनिक आउटपुट <ऑब्जेक्ट> आउटपुट के रूप में ()
टेंसर का प्रतीकात्मक हैंडल लौटाता है।
TensorFlow संचालन के इनपुट किसी अन्य TensorFlow ऑपरेशन के आउटपुट हैं। इस पद्धति का उपयोग एक प्रतीकात्मक हैंडल प्राप्त करने के लिए किया जाता है जो इनपुट की गणना का प्रतिनिधित्व करता है।
सार्वजनिक स्थैतिक SparseMatrixSparseMatMul बनाएं ( स्कोप स्कोप, ऑपरेंड <?> ए, ऑपरेंड <?> बी, क्लास<टी> प्रकार, विकल्प... विकल्प)
एक नए SparseMatrixSparseMatMul ऑपरेशन को लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि।
पैरामीटर
दायरा | वर्तमान दायरा |
---|---|
ए | एक CSRSparseMatrix. |
बी | एक CSRSparseMatrix. |
विकल्प | वैकल्पिक गुण मान रखता है |
रिटर्न
- SparseMatrixSparseMatMul का एक नया उदाहरण
सार्वजनिक स्थैतिक SparseMatrixSparseMatMul.Options transposeA (बूलियन ट्रांसपोज़A)
पैरामीटर
ट्रांसपोज़ ए | इंगित करता है कि क्या `ए` को स्थानांतरित किया जाना चाहिए। |
---|
सार्वजनिक स्थैतिक SparseMatrixSparseMatMul.Options ट्रांसपोज़बी (बूलियन ट्रांसपोज़बी)
पैरामीटर
ट्रांसपोज़बी | इंगित करता है कि क्या `बी` को स्थानांतरित किया जाना चाहिए। |
---|