SpaceToDepth

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

SpaceToDepth עבור טנסורים מסוג T.

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

* בלוקים שאינם חופפים בגודל `block_size x block size` מסודרים מחדש לעומק בכל מיקום. * העומק של טנסור הפלט הוא `גודל_block *גודל_חסימה *עומק_כניסה`. * קואורדינטות Y, X בתוך כל בלוק של הקלט הופכות לרכיב הסדר הגבוה של אינדקס ערוץ הפלט. * הגובה והרוחב של טנסור הקלט חייבים להיות מתחלקים ב-block_size.

ה-`data_format` attr מציין את הפריסה של טנסור הקלט והפלט עם האפשרויות הבאות: "NHWC": `[ batch, height, width, channels ]` "NCHW": `[ batch, channels, height, width ]` " NCHW_VECT_C": `qint8 [ אצווה, ערוצים / 4, גובה, רוחב, 4 ]`

כדאי לשקול את הפעולה כהפיכת טנזור 6-D. למשל עבור data_format = NHWC, ניתן לציין כל אלמנט בטנזור הקלט באמצעות 6 קואורדינטות, מסודרות לפי הפחתת משמעות פריסת הזיכרון כמו: n,oY,bY,oX,bX,iC (כאשר n=אינדקס אצווה, oX, oY פירושו X או קואורדינטות Y בתוך תמונת הפלט, bX, byY פירושו קואורדינטות בתוך בלוק הקלט, iC פירושו ערוצי קלט). הפלט יהיה טרנספוזיציה לפריסה הבאה: n,oY,oX,bY,bX,iC

פעולה זו שימושית לשינוי גודל ההפעלה בין פיתולים (אך שמירה על כל הנתונים), למשל במקום איגום. זה שימושי גם לאימון מודלים קונבולוציוניים בלבד.

לדוגמה, בהינתן קלט של צורה `[1, 2, 2, 1]`, data_format = "NHWC" ו-block_size = 2:

x = [[[[1], [2]],
       [[3], [4]]]]
 
פעולה זו תוציא טנזור של צורה `[1, 1, 1, 4 ]`:
[[[[1, 2, 3, 4]]]]
 
כאן, לקלט יש אצווה של 1 ולכל רכיב אצווה יש צורה `[2, 2, 1]`, הפלט המתאים יהיה בעל אלמנט בודד (כלומר רוחב וגובה שניהם 1) והוא יהיה יש עומק של 4 ערוצים (1 * block_size * block_size). צורת רכיב הפלט היא `[1, 1, 4]`.

עבור טנסור קלט עם עומק גדול יותר, כאן של צורה `[1, 2, 2, 3]`, למשל

x = [[[[1, 2, 3], [4, 5, 6]],
       [[7, 8, 9], [10, 11, 12]]]]
 
פעולה זו, עבור block_size של 2, תחזיר את הטנזור הבא של הצורה `[1, 1, 1, 12]`
[[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]
 
באופן דומה, עבור הקלט הבא של צורה `[1 4 4 1]`, וגודל בלוק של 2:
x = [[[[1],   [2],  [5],  [6]],
       [[3],   [4],  [7],  [8]],
       [[9],  [10], [13],  [14]],
       [[11], [12], [15],  [16]]]]
 
האופרטור יחזיר את הטנסור הבא של הצורה `[1 2 2 4]` :
x = [[[[1, 2, 3, 4],
        [5, 6, 7, 8]],
       [[9, 10, 11, 12],
        [13, 14, 15, 16]]]]
 

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

מעמד SpaceToDepth.Options תכונות אופציונליות עבור SpaceToDepth

קבועים

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

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

פלט <T>
asOutput ()
מחזירה את הידית הסמלית של הטנזור.
סטטי <T מרחיב את TType > SpaceToDepth <T>
ליצור ( היקף היקף , קלט Operand <T>, גודל בלוק ארוך, אפשרויות... אפשרויות)
שיטת מפעל ליצירת מחלקה העוטפת פעולת SpaceToDepth חדשה.
סטטי SpaceToDepth.Options
dataFormat (String dataFormat)
פלט <T>
פלט ()

שיטות בירושה

קבועים

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

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

ערך קבוע: "SpaceToDepth"

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

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

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

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

Public static SpaceToDepth <T> create ( היקף היקף , קלט Operand <T>, גודל בלוק ארוך, אפשרויות... אפשרויות)

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

פרמטרים
תְחוּם ההיקף הנוכחי
blockSize גודל הבלוק המרחבי.
אפשרויות נושא ערכי תכונות אופציונליות
החזרות
  • מופע חדש של SpaceToDepth

public static SpaceToDepth.Options dataFormat (String dataFormat)

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