SpaceToDepth برای تانسورهای نوع T.
بلوک های داده های مکانی را مجدداً در عمق مرتب می کند. به طور خاص، این op یک کپی از تانسور ورودی را خروجی میدهد که در آن مقادیر از ابعاد «ارتفاع» و «عرض» به بعد «عمق» منتقل میشوند. attr `block_size` اندازه بلوک ورودی را نشان می دهد.
* بلوکهای غیرهمپوشانی با اندازه «block_size x block size» در هر مکان به عمق مرتب میشوند. * عمق تانسور خروجی "block_size * block_size * input_depth" است. * مختصات Y، X در هر بلوک ورودی به جزء مرتبه بالای شاخص کانال خروجی تبدیل می شود. * ارتفاع و عرض تانسور ورودی باید بر block_size تقسیم شود.
"قالب_داده" attr طرح تانسورهای ورودی و خروجی را با گزینه های زیر مشخص می کند: "NHWC": `[ دسته، ارتفاع، عرض، کانال ها ]` "NCHW": `[ دسته، کانال ها، ارتفاع، عرض ]` " NCHW_VECT_C": `qint8 [ دسته، کانال / 4، ارتفاع، عرض، 4 ]`
در نظر گرفتن این عملیات به عنوان تبدیل یک تانسور 6 بعدی مفید است. به عنوان مثال برای data_format = NHWC، هر عنصر در تانسور ورودی را می توان از طریق 6 مختصات مشخص کرد، که با کاهش اهمیت چیدمان حافظه به صورت زیر مرتب می شوند: n,oY,bY,oX,bX,iC (که در آن n=شاخص دسته ای، oX، oY به معنی X است. یا مختصات Y در تصویر خروجی، bX، bY به معنای مختصات در بلوک ورودی، 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 () دسته نمادین تانسور را برمی گرداند. |
static <T TType > SpaceToDepth <T> را گسترش می دهد | ایجاد (حوزه دامنه ، ورودی Operand <T>، Long blockSize، گزینهها... گزینهها) روش کارخانه برای ایجاد کلاسی که یک عملیات SpaceToDepth جدید را بسته بندی می کند. |
استاتیک SpaceToDepth.Options | dataFormat (String dataFormat) |
خروجی <T> | خروجی () |
روش های ارثی
ثابت ها
رشته نهایی ثابت عمومی OP_NAME
نام این عملیات، همانطور که توسط موتور هسته TensorFlow شناخته می شود
روش های عمومی
خروجی عمومی <T> asOutput ()
دسته نمادین تانسور را برمی گرداند.
ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.
ایجاد فضای ساکن عمومی SpaceToDepth <T> ( دامنه دامنه ، ورودی عملوند <T>، اندازه بلوک طولانی، گزینهها... گزینهها)
روش کارخانه برای ایجاد کلاسی که یک عملیات SpaceToDepth جدید را بسته بندی می کند.
پارامترها
دامنه | محدوده فعلی |
---|---|
اندازه بلوک | اندازه بلوک فضایی. |
گزینه ها | مقادیر ویژگی های اختیاری را حمل می کند |
برمی گرداند
- نمونه جدیدی از SpaceToDepth