MatrixSetDiagV2

מחלקה סופית ציבורית MatrixSetDiagV2

מחזירה טנזור מטריצה ​​אצווה עם ערכי אלכסון אצווה חדשים.

בהינתן 'קלט' ו'אלכסון', פעולה זו מחזירה טנזור עם אותם צורה וערכים כמו 'קלט', למעט האלכסונים שצוינו של המטריצות הפנימיות ביותר. אלה יוחלפו על ידי הערכים ב'אלכסון'.

ל'קלט' יש ממדי '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` הוא סקלארי או `k[0] == k[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 - max(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]]]
 
 

שיטות ציבוריות

פלט <T>
asOutput ()
מחזירה את הידית הסמלית של טנזור.
סטטי <T> MatrixSetDiagV2 <T>
ליצור ( היקף היקף, קלט Operand <T>, Operand <T> אלכסוני, Operand <Integer> k)
שיטת מפעל ליצירת מחלקה העוטפת פעולת MatrixSetDiagV2 חדשה.
פלט <T>
פלט ()
דרג 'r+1', עם 'output.shape = input.shape'.

שיטות בירושה

שיטות ציבוריות

פלט ציבורי <T> asOutput ()

מחזירה את הידית הסמלית של טנזור.

כניסות לפעולות TensorFlow הן יציאות של פעולת TensorFlow אחרת. שיטה זו משמשת להשגת ידית סמלית המייצגת את חישוב הקלט.

ציבורי סטטי MatrixSetDiagV2 <T> create ( היקף היקף , קלט Operand <T>, Operand <T> אלכסוני, Operand <Integer> k)

שיטת מפעל ליצירת מחלקה העוטפת פעולת MatrixSetDiagV2 חדשה.

פרמטרים
תְחוּם ההיקף הנוכחי
קֶלֶט דירוג `r+1`, כאשר `r >= 1`.
אֲלַכסוֹנִי דירוג `r` כאשר `k` הוא מספר שלם או `k[0] == k[1]`. אחרת, יש לו דירוג 'r+1'. `k >= 1`.
ק היסט אלכסוני(ים). ערך חיובי פירושו על-אלכסון, 0 מתייחס לאלכסון הראשי, וערך שלילי פירושו תת-אלכסונים. `k` יכול להיות מספר שלם בודד (עבור אלכסון בודד) או זוג מספרים שלמים המציינים את הקצוות הנמוכים והגבוהים של פס מטריצה. 'k[0]' לא יכול להיות גדול מ-'k[1]'.
החזרות
  • מופע חדש של MatrixSetDiagV2

פלט ציבורי <T> פלט ()

דרג 'r+1', עם 'output.shape = input.shape'.