זרימת טנסור :: אופ :: MatrixDiagV2
#include <array_ops.h>
מחזיר טנזור אלכסוני באצווה עם ערכים אלכסוניים באצווה.
סיכום
מחזיר טנזור עם התוכן diagonal
כ- k[0]
-th ל- k[1]
אלכסוני המטריצה, כשכל השאר מרופד 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 output[i, j, ..., l, m, n] ; otherwise
אחרת, מטפלים ב- M
כמספר האלכסונים של המטריצה באותה אצווה ( M = k[1]-k[0]+1
), וטנדר הפלט הוא:
output[i, j, ..., l, m, n] = diagonal[i, j, ..., l, k[1]-d, n-max(d, 0)] ; if d_lower <= d <= d_upper input[i, j, ..., l, m, n] ; otherwiseכאשר
d = n - m
לדוגמה:
# 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 = 9. tf.matrix_diag(diagonal, k = -1, num_rows = 3, padding = 9) ==> [[9, 9], # Output shape: (3, 2) [1, 9], [9, 2]]
טענות:
- היקף: אובייקט Scope
- אלכסונית: דירוג
r
, כאשרr >= 1
- k: קיזוז (ים) אלכסוני. ערך חיובי פירושו על-אלכסוני, 0 מתייחס לאלכסון הראשי, וערך שלילי פירושו תת-אלכסונים.
k
יכול להיות מספר שלם בודד (לאלכסון יחיד) או זוג מספרים שלמים המציינים את הקצוות הנמוכים והגבוהים של רצועת מטריצה. אסור ש-k[0]
יהיה גדול מ-k[1]
. - מספר_שורות: מספר השורות של מטריצת הפלט. אם היא לא מסופקת, ה- op מניח שמטריצת הפלט היא מטריצה מרובעת ומביאה את גודל המטריצה מ- k ואת הממד הפנימי ביותר של
diagonal
. - num_cols: מספר העמודות של מטריצת הפלט. אם היא לא מסופקת, ה- op מניח שמטריצת הפלט היא מטריצה מרובעת ומביאה את גודל המטריצה מ- 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
אופרטור :: זורם טנסור :: קלט
operator::tensorflow::Input() const
אופרטור :: זרימת טנסור :: פלט
operator::tensorflow::Output() const
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2020-04-20 (שעון UTC).