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

MatrixSetDiagV3

MatrixSetDiagV3 המעמד הסופי הציבור

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

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

ל'קלט' יש ממדי '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
 
שבו' ד = n - ה- m, `diag_index = k [1] - d`, ו ' index_in_diag = n - max(d, 0) + offset`.

'היסט' הוא אפס למעט כאשר היישור של האלכסון הוא ימינה.

offset = max_diag_len - diag_len(d) ; if (`align` in {RIGHT_LEFT, RIGHT_RIGHT
                                            and `d >= 0`) or
                                          (`align` in {LEFT_RIGHT, RIGHT_RIGHT}
                                            and `d <= 0`)
          0                          ; otherwise
 }
שבו 'diag_len (ד) = min (cols - מקסימום (ד, 0), שורות + דק' (ד, 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(input, 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(input, 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([[[0, 9, 1],  # Diagonal shape: (2, 4, 3)
                        [6, 5, 8],
                        [1, 2, 3],
                        [4, 5, 0]],
                       [[0, 1, 2],
                        [5, 6, 4],
                        [6, 1, 2],
                        [3, 4, 0]]])
 tf.matrix_set_diag(input, diagonals, k = (-1, 2))
   ==> [[[1, 6, 9, 7],  # Output shape: (2, 3, 4)
         [4, 2, 5, 1],
         [7, 5, 3, 8]],
        [[6, 5, 1, 7],
         [3, 1, 6, 2],
         [7, 4, 2, 4]]]
 
 # LEFT_RIGHT alignment.
 diagonals = np.array([[[9, 1, 0],  # Diagonal shape: (2, 4, 3)
                        [6, 5, 8],
                        [1, 2, 3],
                        [0, 4, 5]],
                       [[1, 2, 0],
                        [5, 6, 4],
                        [6, 1, 2],
                        [0, 3, 4]]])
 tf.matrix_set_diag(input, diagonals, k = (-1, 2), align="LEFT_RIGHT")
   ==> [[[1, 6, 9, 7],  # Output shape: (2, 3, 4)
         [4, 2, 5, 1],
         [7, 5, 3, 8]],
        [[6, 5, 1, 7],
         [3, 1, 6, 2],
         [7, 4, 2, 4]]]
 
 

כיתות מקוננות

מעמד MatrixSetDiagV3.Options מאפיינים אופציונליים עבור MatrixSetDiagV3

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

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

שיטות בירושה

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

סטטי הציבור MatrixSetDiagV3.Options align (align מחרוזת)

פרמטרים
ליישר חלק מהאלכסונים קצרים מ-'max_diag_len' וצריכים להיות מרופדים. `align` הוא מחרוזת המציינת כיצד יש ליישר אלכסוני-על ותת-אלכסונים, בהתאמה. ישנם ארבעה יישורים אפשריים: "RIGHT_LEFT" (ברירת מחדל), "LEFT_RIGHT", "LEFT_LEFT" ו-"RIGHT_RIGHT". "RIGHT_LEFT" מיישר את אלכסוני העל לימין (מכפיל את השורה משמאל) ואת אלכסוני המשנה לשמאל (מכפיל את השורה מימין). זוהי פורמט האריזה שבה משתמש LAPACK. cuSPARSE משתמש ב-"LEFT_RIGHT", שהוא היישור ההפוך.

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

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

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

הציבור סטטי MatrixSetDiagV3 <T> ליצור ( היקף היקף, האופרנד <T> קלט, האופרנד <T> אלכסוני, האופרנד <Integer> k, אפשרויות ... אופציות)

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

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

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

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