تدفق التوتر:: العمليات:: العمق إلى الفضاء
#include <array_ops.h>
DepthToSpace للموترات من النوع T.
ملخص
إعادة ترتيب البيانات من العمق إلى كتل من البيانات المكانية. هذا هو التحول العكسي لـ SpaceToDepth. وبشكل أكثر تحديدًا، تقوم هذه العملية بإخراج نسخة من موتر الإدخال حيث يتم نقل القيم من بُعد depth
في كتل مكانية إلى أبعاد height
width
. يشير block_size
attr إلى حجم كتلة الإدخال وكيفية نقل البيانات.
- تتم إعادة ترتيب أجزاء من البيانات بحجم
block_size * block_size
من العمق إلى كتل غير متداخلة بحجمblock_size x block_size
- عرض موتر الإخراج هو
input_depth * block_size
، في حين أن الارتفاع هوinput_height * block_size
. - يتم تحديد إحداثيات Y وX داخل كل كتلة من صورة الإخراج بواسطة مكون الترتيب العالي لمؤشر قناة الإدخال.
- يجب أن يكون عمق موتر الإدخال قابلاً للقسمة على
block_size * block_size
.
يحدد attr data_format
تخطيط موتر الإدخال والإخراج مع الخيارات التالية: "NHWC": [ batch, height, width, channels ]
"NCHW": [ batch, channels, height, width ]
"NCHW_VECT_C": qint8 [ batch, channels / 4, height, width, 4 ]
من المفيد اعتبار العملية بمثابة تحويل لموتر سداسي الأبعاد. على سبيل المثال، بالنسبة إلى data_format = NHWC، يمكن تحديد كل عنصر في موتر الإدخال عبر 6 إحداثيات، مرتبة عن طريق تقليل أهمية تخطيط الذاكرة على النحو التالي: n,iY,iX,bY,bX,oC (حيث n=فهرس الدُفعة، iX، iY يعني X أو إحداثيات Y داخل صورة الإدخال، bX، bY تعني الإحداثيات داخل كتلة الإخراج، oC تعني قنوات الإخراج). سيكون الإخراج هو المدخلات المنقولة إلى التخطيط التالي: n,iY,bY,iX,bX,oC
هذه العملية مفيدة لتغيير حجم عمليات التنشيط بين التحويلات (ولكن مع الاحتفاظ بجميع البيانات)، على سبيل المثال بدلاً من التجميع. كما أنه مفيد لتدريب النماذج التلافيفية البحتة.
على سبيل المثال، في حالة إدخال الشكل [1, 1, 1, 4]
data_format = "NHWC" و block_size = 2:
x = [[[[1, 2, 3, 4]]]]
This operation will output a tensor of shape
[1, 2, 2, 1]
:
هنا، يحتوي الإدخال على دفعة مكونة من 1 ولكل عنصر دفعة شكل
[1, 1, 4]
، وسيحتوي الإخراج المقابل على عناصر 2x2 وسيكون له عمق قناة واحدة (1 =4 / (block_size * block_size)
). شكل عنصر الإخراج هو[2, 2, 1]
.بالنسبة لموتر الإدخال بعمق أكبر، هنا بالشكل
[1, 1, 1, 12]
، على سبيل المثال
هذه العملية، لحجم الكتلة 2، ستعيد موتر الشكل التالي
[1, 2, 2, 3]