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

SpaceToBatchNd

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

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

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

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

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' כדי לשטח את 'בלוק_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]`, ו-paddings = `[[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]]]]
 
בין היתר, פעולה זו שימושית להפחתת פיתול אטרוס לכדי פיתול רגיל.

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

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

שיטות בירושה

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

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

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

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

ציבורי סטטי SpaceToBatchNd <T> ליצור ( היקף היקף, קלט Operand <T>, ריפודי Operand <U> blockShape, ריפודים של Operand <V>)

שיטת מפעל ליצירת מחלקה העוטפת פעולת 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'.
החזרות
  • מופע חדש של SpaceToBatchNd

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