MatrixDiagPartV3

כיתת גמר ציבורית MatrixDiagPartV3

מחזירה את החלק האלכסוני המצטבר של טנזור אצווה.

מחזירה טנזור עם האלכסונים של `k[0]`-th עד `k[1]`-th של `הקלט` המצטבר.

נניח של"קלט" יש ממדי "r" "[I, J, ..., L, M, N]". תן `max_diag_len` להיות האורך המקסימלי מבין כל האלכסונים שיש לחלץ, `max_diag_len = min(M + min(k[1], 0), N + min(-k[0], 0))` תן `num_diags` להיות מספר האלכסונים לחלץ, `num_diags = k[1] - k[0] + 1`.

אם `num_diags == 1`, טנסור הפלט הוא בדרגה `r - 1` עם הצורה `[I, J, ..., L, max_diag_len]` וערכים:

diagonal[i, j, ..., l, n]
   = input[i, j, ..., l, n+y, n+x] ; if 0 <= n+y < M and 0 <= n+x < N,
     padding_value                 ; otherwise.
 
כאשר `y = max(-k[1], 0)`, `x = max(k[1], 0)`.

אחרת, לטנזור הפלט יש דירוג `r` עם מידות `[I, J, ..., L, num_diags, max_diag_len]` עם ערכים:

diagonal[i, j, ..., l, m, n]
   = input[i, j, ..., l, n+y, n+x] ; if 0 <= n+y < M and 0 <= n+x < N,
     padding_value                 ; otherwise.
 
כאשר `d = k[1] - m`, `y = max(-d, 0) - offset`, ו-`x = 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(d) = min(cols - max(d, 0), rows + min(d, 0))`.

הקלט חייב להיות לפחות מטריצה.

לְדוּגמָה:

input = np.array([[[1, 2, 3, 4],  # Input shape: (2, 3, 4)
                    [5, 6, 7, 8],
                    [9, 8, 7, 6]],
                   [[5, 4, 3, 2],
                    [1, 2, 3, 4],
                    [5, 6, 7, 8]]])
 
 # A main diagonal from each batch.
 tf.matrix_diag_part(input) ==> [[1, 6, 7],  # Output shape: (2, 3)
                                 [5, 2, 7]]
 
 # A superdiagonal from each batch.
 tf.matrix_diag_part(input, k = 1)
   ==> [[2, 7, 6],  # Output shape: (2, 3)
        [4, 3, 8]]
 
 # A band from each batch.
 tf.matrix_diag_part(input, k = (-1, 2))
   ==> [[[0, 3, 8],  # Output shape: (2, 4, 3)
         [2, 7, 6],
         [1, 6, 7],
         [5, 8, 0]],
        [[0, 3, 4],
         [4, 3, 8],
         [5, 2, 7],
         [1, 6, 0]]]
 
 # LEFT_RIGHT alignment.
 tf.matrix_diag_part(input, k = (-1, 2), align="LEFT_RIGHT")
   ==> [[[3, 8, 0],  # Output shape: (2, 4, 3)
         [2, 7, 6],
         [1, 6, 7],
         [0, 5, 8]],
        [[3, 4, 0],
         [4, 3, 8],
         [5, 2, 7],
         [0, 1, 6]]]
 
 # max_diag_len can be shorter than the main diagonal.
 tf.matrix_diag_part(input, k = (-2, -1))
   ==> [[[5, 8],
         [9, 0]],
        [[1, 6],
         [5, 0]]]
 
 # padding_value = 9
 tf.matrix_diag_part(input, k = (1, 3), padding_value = 9)
   ==> [[[9, 9, 4],  # Output shape: (2, 3, 3)
         [9, 3, 8],
         [2, 7, 6]],
        [[9, 9, 2],
         [9, 3, 4],
         [4, 3, 8]]]
 
 

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

מַחלָקָה MatrixDiagPartV3.Options תכונות אופציונליות עבור MatrixDiagPartV3

קבועים

חוּט OP_NAME השם של המבצע הזה, כפי שידוע על ידי מנוע הליבה של TensorFlow

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

סטטי MatrixDiagPartV3.Options
יישור (יישור מחרוזת)
פלט <T>
asOutput ()
מחזירה את הידית הסמלית של הטנזור.
סטטי <T מרחיב את TType > MatrixDiagPartV3 <T>
צור ( scope scope, Operand <T> קלט, Operand < TInt32 > k, Operand <T> paddingValue, Options... options)
שיטת מפעל ליצירת מחלקה העוטפת פעולת MatrixDiagPartV3 חדשה.
פלט <T>
אלכסון ()
האלכסון/ים שחולצו.

שיטות בירושה

org.tensorflow.op.RawOp
בוליאנית סופית
שווה (Object obj)
int סופי
מִבצָע
אופ ()
החזר יחידת חישוב זו Operation אחת.
מחרוזת סופית
בוליאני
שווה (Object arg0)
שיעור אחרון<?>
getClass ()
int
hashcode ()
ריק סופי
להודיע ​​()
ריק סופי
הודע הכל ()
חוּט
toString ()
ריק סופי
המתן (ארג0 ארוך, אינט arg1)
ריק סופי
חכה (ארג0 ארוך)
ריק סופי
חכה ()
org.tensorflow.op.Op
אבסטרקט ExecutionEnvironment
env ()
החזר את סביבת הביצוע שבה נוצר האופציה הזו.
מבצע מופשט
אופ ()
החזר יחידת חישוב זו Operation אחת.
org.tensorflow.Operand
פלט מופשט <T>
asOutput ()
מחזירה את הידית הסמלית של הטנזור.
תקציר T
asTensor ()
מחזיר את הטנזור באופרנד זה.
צורה מופשטת
צורה ()
מחזירה את הצורה (הידועה אולי בחלקה) של הטנזור שאליו מתייחס Output של אופרנד זה.
מחלקה מופשטת<T>
סוג ()
מחזירה את סוג הטנזור של אופרנד זה
org.tensorflow.ndarray.Shaped
מופשט int
צורה מופשטת
מופשט ארוך
גודל ()
מחשב ומחזיר את הגודל הכולל של מיכל זה, במספר ערכים.

קבועים

מחרוזת סופית סטטית ציבורית OP_NAME

השם של המבצע הזה, כפי שידוע על ידי מנוע הליבה של TensorFlow

ערך קבוע: "MatrixDiagPartV3"

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

public static MatrixDiagPartV3.Options align (String align)

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

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

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

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

public static MatrixDiagPartV3 <T> create ( היקף היקף , קלט Operand <T>, Operand < TInt32 > k, Operand <T> paddingValue, אפשרויות... אפשרויות)

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

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

פלט ציבורי <T> באלכסון ()

האלכסון/ים שחולצו.