दिए गए बैच किए गए विकर्ण मानों के साथ एक बैच किया हुआ विकर्ण टेंसर देता है।
`विकर्ण` में सामग्री के साथ एक टेंसर को `k[0]`-वें से `k[1]`-मैट्रिक्स के विकर्णों के रूप में लौटाता है, बाकी सब कुछ `पैडिंग` के साथ गद्देदार होता है। `num_rows` और `num_cols` आउटपुट के अंतरतम मैट्रिक्स के आयाम को निर्दिष्ट करते हैं। यदि दोनों निर्दिष्ट नहीं हैं, तो op मानता है कि अंतरतम मैट्रिक्स वर्गाकार है और इसके आकार को `k` और `विकर्ण` के अंतरतम आयाम से अनुमानित करता है। यदि उनमें से केवल एक निर्दिष्ट है, तो op मानता है कि अनिर्दिष्ट मान अन्य मानदंडों के आधार पर सबसे छोटा संभव है।
माना `विकर्ण` का `r` आयाम है [I, J, ..., L, M, N]`। आउटपुट टेंसर में रैंक है `r+1` आकार के साथ [I, J, ..., L, M, num_rows, num_cols]` जब केवल एक विकर्ण दिया जाता है (`k` एक पूर्णांक या `k [0] है == के [1]`)। अन्यथा, इसका रैंक `r` आकार `[I, J, ..., L, num_rows, num_cols]` के साथ है।
'विकर्ण' के दूसरे अंतरतम आयाम का दोहरा अर्थ है। जब `k` अदिश है या` कश्मीर [0] == कश्मीर [1] `,` m` बैच का आकार [आई, जे, ..., एम] का हिस्सा है, और उत्पादन टेन्सर है:
output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, n-max(d_upper, 0)] ; if n - m == d_upper
padding_value ; otherwise
( `एम = कश्मीर [1] -k [0] + 1`) अन्यथा,` m` एक ही बैच में मैट्रिक्स के लिए विकर्ण की संख्या के रूप में व्यवहार किया जाता है, और उत्पादन टेन्सर है: output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
padding_value ; otherwise
जहां `d = n - m`, `diag_index = k[1] - d`, और `index_in_diag = n - max(d, 0)`।उदाहरण के लिए:
# The main diagonal.
diagonal = np.array([[1, 2, 3, 4], # Input shape: (2, 4)
[5, 6, 7, 8]])
tf.matrix_diag(diagonal) ==> [[[1, 0, 0, 0], # Output shape: (2, 4, 4)
[0, 2, 0, 0],
[0, 0, 3, 0],
[0, 0, 0, 4]],
[[5, 0, 0, 0],
[0, 6, 0, 0],
[0, 0, 7, 0],
[0, 0, 0, 8]]]
# A superdiagonal (per batch).
diagonal = np.array([[1, 2, 3], # Input shape: (2, 3)
[4, 5, 6]])
tf.matrix_diag(diagonal, k = 1)
==> [[[0, 1, 0, 0], # Output shape: (2, 4, 4)
[0, 0, 2, 0],
[0, 0, 0, 3],
[0, 0, 0, 0]],
[[0, 4, 0, 0],
[0, 0, 5, 0],
[0, 0, 0, 6],
[0, 0, 0, 0]]]
# A band of diagonals.
diagonals = np.array([[[1, 2, 3], # Input shape: (2, 2, 3)
[4, 5, 0]],
[[6, 7, 9],
[9, 1, 0]]])
tf.matrix_diag(diagonals, k = (-1, 0))
==> [[[1, 0, 0], # Output shape: (2, 3, 3)
[4, 2, 0],
[0, 5, 3]],
[[6, 0, 0],
[9, 7, 0],
[0, 1, 9]]]
# Rectangular matrix.
diagonal = np.array([1, 2]) # Input shape: (2)
tf.matrix_diag(diagonal, k = -1, num_rows = 3, num_cols = 4)
==> [[0, 0, 0, 0], # Output shape: (3, 4)
[1, 0, 0, 0],
[0, 2, 0, 0]]
# Rectangular matrix with inferred num_cols and padding_value = 9.
tf.matrix_diag(diagonal, k = -1, num_rows = 3, padding_value = 9)
==> [[9, 9], # Output shape: (3, 2)
[1, 9],
[9, 2]]
सार्वजनिक तरीके
आउटपुट <टी> | asOutput () टेंसर का प्रतीकात्मक हैंडल लौटाता है। |
स्थिर <टी> MatrixDiagV2 <टी> | |
आउटपुट <टी> | उत्पादन () रैंक `r+1` है जब `k` एक पूर्णांक है या `k[0] == k[1]`, रैंक `r` अन्यथा। |
विरासत में मिली विधियां
सार्वजनिक तरीके
सार्वजनिक आउटपुट <टी> asOutput ()
टेंसर का प्रतीकात्मक हैंडल लौटाता है।
TensorFlow संचालन के लिए इनपुट एक अन्य TensorFlow ऑपरेशन के आउटपुट हैं। इस पद्धति का उपयोग एक प्रतीकात्मक हैंडल प्राप्त करने के लिए किया जाता है जो इनपुट की गणना का प्रतिनिधित्व करता है।
सार्वजनिक स्थिर MatrixDiagV2 <टी> बनाने ( स्कोप गुंजाइश, ओपेरैंड <टी> विकर्ण, ओपेरैंड <पूर्णांक> कश्मीर, ओपेरैंड <पूर्णांक> numrows, ओपेरैंड <पूर्णांक> numCols, ओपेरैंड <टी> paddingValue)
एक नया MatrixDiagV2 ऑपरेशन रैपिंग क्लास बनाने के लिए फ़ैक्टरी विधि।
मापदंडों
दायरा | वर्तमान दायरा |
---|---|
विकर्ण | रैंक `r`, जहां `r >= 1` |
क | विकर्ण ऑफसेट (ओं)। धनात्मक मान का अर्थ है सुपरडायगोनल, 0 मुख्य विकर्ण को संदर्भित करता है, और ऋणात्मक मान का अर्थ उप-विकर्ण है। `k` एक एकल पूर्णांक (एकल विकर्ण के लिए) या पूर्णांकों की एक जोड़ी हो सकती है जो मैट्रिक्स बैंड के निम्न और उच्च सिरों को निर्दिष्ट करती है। `के [0]` `के [1]` से बड़ा नहीं होना चाहिए। |
संख्यापंक्तियाँ | आउटपुट मैट्रिक्स की पंक्तियों की संख्या। यदि यह प्रदान नहीं किया जाता है, तो op मान लेता है कि आउटपुट मैट्रिक्स एक वर्ग मैट्रिक्स है और मैट्रिक्स के आकार को k से और `विकर्ण` के अंतरतम आयाम का अनुमान लगाता है। |
numCols | आउटपुट मैट्रिक्स के कॉलम की संख्या। यदि यह प्रदान नहीं किया जाता है, तो op मान लेता है कि आउटपुट मैट्रिक्स एक वर्ग मैट्रिक्स है और मैट्रिक्स के आकार को k से और `विकर्ण` के अंतरतम आयाम का अनुमान लगाता है। |
पैडिंगवैल्यू | निर्दिष्ट विकर्ण बैंड के बाहर के क्षेत्र को भरने के लिए संख्या। डिफ़ॉल्ट 0 है। |
रिटर्न
- MatrixDiagV2 का एक नया उदाहरण
सार्वजनिक आउटपुट <टी> निर्गम ()
रैंक `r+1` है जब `k` एक पूर्णांक है या `k[0] == k[1]`, रैंक `r` अन्यथा।