تدفق التوتر:: العمليات:: العمق إلى الفضاء
#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], [2]], [[3], [4]]]]
هنا، يحتوي الإدخال على دفعة مكونة من 1 ولكل عنصر دفعة شكل [1, 1, 4]
، وسيحتوي الإخراج المقابل على عناصر 2x2 وسيكون له عمق قناة واحدة (1 = 4 / (block_size * block_size)
). شكل عنصر الإخراج هو [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]]]]
Similarly, for the following input of shape
[1 2 2 4]
, and a block size of 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]]]]
Arguments:
- scope: A Scope object
- block_size: The size of the spatial block, same as in Space2Depth.
Returns:
Output
: The output tensor.
Constructors and Destructors |
|
---|---|
DepthToSpace(const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size)
|
|
DepthToSpace(const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size, const DepthToSpace::Attrs & attrs)
|
Public attributes |
|
---|---|
operation
|
|
output
|
Public functions |
|
---|---|
node() const
|
::tensorflow::Node *
|
operator::tensorflow::Input() const
|
|
operator::tensorflow::Output() const
|
|
Public static functions |
|
---|---|
DataFormat(StringPiece x)
|
Structs |
|
---|---|
tensorflow:: |
Optional attribute setters for DepthToSpace. |
Public attributes
operation
Operation operation
الإخراج
::tensorflow::Output output
الوظائف العامة
العمق إلى الفضاء
DepthToSpace( const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size )
العمق إلى الفضاء
DepthToSpace( const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size, const DepthToSpace::Attrs & attrs )
العقدة
::tensorflow::Node * node() const
المشغل::tensorflow::الإدخال
operator::tensorflow::Input() const
المشغل::tensorflow::الإخراج
operator::tensorflow::Output() const
وظائف ثابتة العامة
تنسيق البيانات
Attrs DataFormat( StringPiece x )
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2024-11-16 (حسب التوقيت العالمي المتفَّق عليه)