tensorflow:: ops:: DepthToSpace

#include <array_ops.h>

DepthToSpace للموترات من النوع T.

ملخص

يعيد هذا الإجراء ترتيب البيانات من العمق إلى كتل من البيانات المكانية. وهو عكس عملية تحويل الفضاء إلى العمق. وبشكل أدق، يُخرج هذا الإجراء نسخة من موتر الإدخال حيث تُنقل القيم من بُعد depth في كتل مكانية إلى بُعدي height width . ويشير الخاصية 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 تخطيط موترات الإدخال والإخراج بالخيارات التالية: "NHWC": [ batch, height, width, channels ] "NCHW": [ batch, channels, height, width ] "NCHW_VECT_C": qint8 [ batch, channels / 4, height, width, 4 ]

من المفيد اعتبار العملية بمثابة تحويل لموتر سداسي الأبعاد. على سبيل المثال، بالنسبة لتنسيق البيانات 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] ، وكان تنسيق البيانات = "NHWC" وحجم الكتلة = 2:

x = [[[[1, 2, 3, 4]]]]

  

This operation will output a tensor of shape [1, 2, 2, 1]:

   [[[[1], [2]],
     [[3], [4]]]]

هنا، تحتوي المدخلات على دفعة واحدة، ويكون شكل كل عنصر من عناصر الدفعة [1, 1, 4] . سيكون للمخرجات المقابلة 2×2 عنصرًا، وسيكون عمقها قناة واحدة (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:

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::ops::DepthToSpace::Attrs

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 

operator::tensorflow::Input

 operator::tensorflow::Input() const 

operator::tensorflow::Output

 operator::tensorflow::Output() const 

الدوال الثابتة العامة

تنسيق البيانات

Attrs DataFormat(
  StringPiece x
)