SpaceToBatchNd

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

SpaceToBatch עבור טנסור ND מסוג T.

פעולה זו מחלקת את הממדים ה"מרחביים" `[1, ..., M]` של הקלט לרשת של בלוקים בצורת `block_shape`, ומשזרת את הבלוקים הללו בממד "אצווה" (0) כך שבפלט , הממדים המרחביים `[1, ..., M]` תואמים את המיקום בתוך הרשת, וממד האצווה משלב גם את המיקום בתוך בלוק מרחבי וגם את מיקום האצווה המקורי. לפני החלוקה לבלוקים, הממדים המרחביים של הקלט מרופדים באופן אופציונלי אפס לפי `ריפודים`. ראה להלן לתיאור מדויק.

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

פלט <T>
asOutput ()
מחזירה את הידית הסמלית של טנזור.
סטטי <T, U מרחיב את המספר, V מרחיב את המספר> SpaceToBatchNd <T>
צור ( scope scope, Operand <T> קלט, Operand <U> blockShape, Operand <V> paddings)
שיטת מפעל ליצירת מחלקה העוטפת פעולת SpaceToBatchNd חדשה.
פלט <T>
פלט ()

שיטות בירושה

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

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

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

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

Public static SpaceToBatchNd <T> create ( scope scope, Operand <T> קלט, Operand <U> blockShape, Operand <V> paddings)

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

פרמטרים
תְחוּם ההיקף הנוכחי
קֶלֶט ND עם צורה `input_shape = [אצווה] + spatial_shape + resting_shape`, כאשר לצורת_מרחבית יש ממדי `M`.
blockShape 1-D עם צורה `[M]`, כל הערכים חייבים להיות >= 1.
ריפודים 2-D עם צורה `[M, 2]`, כל הערכים חייבים להיות >= 0. `paddings[i] = [pad_start, pad_end]` מציין את הריפוד עבור ממד הקלט `i + 1`, המתאים לממד המרחבי `אני`. נדרש ש-'block_shape[i]' יחלק את 'input_shape[i + 1] + pad_start + pad_end'.

פעולה זו מקבילה לשלבים הבאים:

1. אפס פד את ההתחלה והסוף של הממדים `[1, ..., M]` של הקלט לפי `paddings` כדי לייצר `padded` של הצורה `padded_shape`.

2. עצב מחדש את הצורה 'מרופד' ל'מרופד_מחדש':

[אצווה] + [צורה_מרופדת[1] / צורת_חסימה[0], צורת_חסימה[0], ..., צורה_מרופדת[M] / צורת_חסימה[M-1], צורת_חסימה[M-1]] + צורה_נותרת

3. החלף את הממדים של `reshaped_padded` כדי ליצור `permuted_reshaped_padded` של הצורה:

block_shape + [אצווה] + [padded_shape[1] / block_shape[0], ..., padded_shape[M] / block_shape[M-1]] + resting_shape

4. עצב מחדש את `permuted_reshaped_padded` כדי לשטח את `block_shape` למימד האצווה, תוך הפקת טנסור פלט של צורה:

[אצווה * prod(block_shape)] + [רופד_צורה[1] / צורת_חסימה[0], ..., צורה_מרופדת[M] / צורת_חסימה[M-1]] + צורה_שארית

כמה דוגמאות:

(1) עבור הקלט הבא של צורה `[1, 2, 2, 1]`, `block_shape = [2, 2]` ו-`paddings = [[0, 0], [0, 0]]`:

x = [[[[1], [2]], [[3], [4]]]]
 
לטנזור הפלט יש צורה `[4, 1, 1, 1]` וערך:
[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
 
(2) עבור הקלט הבא של הצורה `[1, 2, 2, 3]`, `block_shape = [ 2, 2]`, וכן `paddings = [[0, 0], [0, 0]]`:
x = [[[[1, 2, 3], [4, 5, 6]],
       [[7, 8, 9], [10, 11, 12]]]]
 
לטנזור הפלט יש צורה `[4, 1, 1, 3]` וערך:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
 
(3) עבור הקלט הבא של צורה `[1, 4, 4, 1]`, `block_shape = [2, 2]` ו-`paddings = [[0, 0], [0, 0]]`:
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]],
       [[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 
לטנזור הפלט יש צורה `[4, 2, 2, 1]` וערך:
x = [[[[1], [3]], [[9], [11]]],
      [[[2], [4]], [[10], [12]]],
      [[[5], [7]], [[13], [15]]],
      [[[6], [8]], [[14], [16]]]]
 
(4) עבור הקלט הבא של הצורה `[2, 2, 4, 1]`, block_shape = `[ 2, 2]`, וכן ריפודים = `[[0, 0], [2, 0]]`:
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]]],
      [[[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 
לטנזור הפלט יש צורה `[8, 1, 3, 1]` וערך:
x = [[[[0], [1], [3]]], [[[0], [9], [11]]],
      [[[0], [2], [4]]], [[[0], [10], [12]]],
      [[[0], [5], [7]]], [[[0], [13], [15]]],
      [[[0], [6], [8]]], [[[0], [14], [16]]]]
 
בין היתר, פעולה זו שימושית להפחתת פיתול אטרוס לכדי פיתול רגיל.
החזרות
  • מופע חדש של SpaceToBatchNd

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