tensorflow:: אופס:: 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 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: אובייקט Scope
- אלכסון: דירוג
r
, כאשרr >= 1
- k: היסט אלכסוני(ים). ערך חיובי פירושו על-אלכסון, 0 מתייחס לאלכסון הראשי, וערך שלילי פירושו תת-אלכסונים.
k
יכול להיות מספר שלם בודד (עבור אלכסון בודד) או זוג שלמים המציינים את הקצוות הנמוכים והגבוהים של פס מטריצה.k[0]
לא יכול להיות גדול מ-k[1]
. - num_rows: מספר השורות של מטריצת הפלט. אם זה לא מסופק, ה-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
מפעיל::tensorflow::קלט
operator::tensorflow::Input() const
אופרטור::tensorflow::פלט
operator::tensorflow::Output() const
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2024-11-25 (שעון UTC).