DepthToSpace

שיעור הגמר הציבורי DepthToSpace

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

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

* נתחי נתונים בגודל 'גודל_block_size * block_size' מעומק מסודרים מחדש לבלוקים שאינם חופפים בגודל 'block_size x block_size' * הרוחב של טנסור הפלט הוא 'input_depth * block_size', בעוד שהגובה הוא 'input_height * block_size'. * קואורדינטות Y, X בתוך כל בלוק של תמונת הפלט נקבעות על ידי רכיב הסדר הגבוה של אינדקס ערוץ הקלט. * עומק טנסור הקלט חייב להיות מתחלק ב-'block_size * 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,iY,iX,bY,bX,oC (כאשר n=אינדקס אצווה, iX, iY פירושו X או קואורדינטות Y בתוך תמונת הקלט, bX, byY פירושו קואורדינטות בתוך בלוק הפלט, oC פירושו ערוצי פלט). הפלט יהיה הקלט המופנה לפריסה הבאה: n,iY,bY,iX,bX,oC

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

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

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

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

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

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

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

קבועים

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

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

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

שיטות בירושה

קבועים

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

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

ערך קבוע: "DepthToSpace"

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

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

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

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

ציבורי סטטי DepthToSpace <T> ליצור ( היקף היקף , קלט Operand <T>, גודל בלוק ארוך, אפשרויות... אפשרויות)

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

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

public static DepthToSpace.Options dataFormat (String dataFormat)

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