tensorflow:: ops:: MatrixDiagV2
#include <array_ops.h>מחזירה טנזור אלכסוני מחולק באצווה עם ערכי אלכסון מחולקים באצווה נתונים.
תַקצִיר
מחזירה טנזור עם תוכן diagonal כאלכסונים k[0] -th עד k[1] -th של מטריצה, כאשר כל השאר מרופד padding . num_rows ו- num_cols מציינים את ממד המטריצה הפנימית ביותר של הפלט. אם שניהם לא מצוינים, הפונקציה op מניחה שהמטריקה הפנימית ביותר היא ריבועית ומסיקה את גודלה מ- k ומהממד הפנימי ביותר של diagonal . אם רק אחד מהם מצוין, הפונקציה op מניחה שהערך הלא מוגדר הוא הקטן ביותר האפשרי בהתבסס על קריטריונים אחרים.
יהי diagonal r ממדים [I, J, ..., L, M, N] . לטנזור הפלט יש דרגה r+1 עם צורה [I, J, ..., L, M, num_rows, num_cols] כאשר נתון רק אלכסון אחד ( k הוא מספר שלם או k[0] == k[1] ). אחרת, יש לו דרגה r עם צורה [I, J, ..., L, num_rows, num_cols] .
לממד הפנימי השני של diagonal יש משמעות כפולה. כאשר k הוא סקלרי או k[0] == k[1] , M הוא חלק מגודל הקבוצה [I, J, ..., M], וטנזור הפלט הוא:
output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, n-max(d_upper, 0)] ; if n - m == d_upper
padding_value ; otherwise אחרת, M נחשב למספר האלכסונים של המטריצה באותו אצווה ( M = k[1]-k[0]+1 ), וטנזור הפלט הוא:
output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
padding_value ; otherwised = 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]]
טיעונים:
- היקף: אובייקט היקף
- אלכסון: דרגה
r, כאשרr >= 1 - k: היסט אלכסוני. ערך חיובי פירושו אלכסון-על, 0 מתייחס לאלכסון הראשי, וערך שלילי פירושו תת-אלכסונים.
kיכול להיות מספר שלם יחיד (עבור אלכסון יחיד) או זוג מספרים שלמים המציינים את הקצה התחתון והגבוה של פס מטריצה.k[0]לא יכול להיות גדול מ-k[1]. - num_rows: מספר השורות של מטריצת הפלט. אם הוא לא מסופק, הפונקציה הפעילה מניחה שמטריצת הפלט היא מטריצה ריבועית ומסיקה את גודל המטריצה מ-k ומהמימד הפנימי ביותר של
diagonal. - num_cols: מספר העמודות של מטריצת הפלט. אם הוא לא מסופק, הפונקציה הפעילה מניחה שמטריצת הפלט היא מטריצה ריבועית ומסיקה את גודל המטריצה מ-k ומהמימד הפנימי ביותר של
diagonal. - padding_value: המספר שיש למלא בו את האזור שמחוץ לפס האלכסוני שצוין. ברירת המחדל היא 0.
החזרות:
-
Output: הדירוגr+1כאשרkהוא מספר שלם אוk[0] == k[1], הדירוגrבמקרה כזה.
בנאים והורסים | |
|---|---|
MatrixDiagV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input diagonal, :: tensorflow::Input k, :: tensorflow::Input num_rows, :: tensorflow::Input num_cols, :: tensorflow::Input padding_value) |
מאפיינים ציבוריים | |
|---|---|
operation | |
output | |
תפקידים ציבוריים | |
|---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const | |
מאפיינים ציבוריים
מִבצָע
Operation operation
תְפוּקָה
::tensorflow::Output output
תפקידים ציבוריים
MatrixDiagV2
MatrixDiagV2( const ::tensorflow::Scope & scope, ::tensorflow::Input diagonal, ::tensorflow::Input k, ::tensorflow::Input num_rows, ::tensorflow::Input num_cols, ::tensorflow::Input padding_value )
צוֹמֶת
::tensorflow::Node * node() const
אופרטור::tensorflow::קלט
operator::tensorflow::Input() const
אופרטור::tensorflow::פלט
operator::tensorflow::Output() const
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2026-11-05 (שעון UTC).