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