tensorflow:: عملیات:: عمق به فضا

#include <array_ops.h>

عمق به فضا برای تانسورهای نوع T.

خلاصه

داده‌ها را از عمق به بلوک‌های داده‌های مکانی بازآرایی می‌کند. این تبدیل معکوس SpaceToDepth است. به طور خاص، این عملیات یک کپی از تانسور ورودی را خروجی می‌دهد که در آن مقادیر از بُعد depth در بلوک‌های مکانی به ابعاد height و width منتقل می‌شوند. 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 طرح‌بندی تانسورهای ورودی و خروجی را با گزینه‌های زیر مشخص می‌کند: "NHWC": [ batch, height, width, channels ] "NCHW": [ batch, channels, height, width ] "NCHW_VECT_C": qint8 [ batch, channels / 4, height, width, 4 ]

مفید است که این عملیات را به عنوان تبدیل یک تانسور ۶ بعدی در نظر بگیریم. به عنوان مثال برای data_format = NHWC، هر عنصر در تانسور ورودی را می‌توان از طریق ۶ مختصات مشخص کرد که با کاهش اهمیت طرح حافظه به صورت زیر مرتب شده‌اند: n,iY,iX,bY,bX,oC (که در آن n=batch index، 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] دارد، خروجی مربوطه دارای عناصر ۲x۲ خواهد بود و عمق کانال ۱ خواهد داشت (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]]]]

این عملیات، برای اندازه بلوک ۲، تانسور شکل زیر را برمی‌گرداند [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 

عملگر::tensorflow::ورودی

 operator::tensorflow::Input() const 

عملگر::tensorflow::خروجی

 operator::tensorflow::Output() const 

توابع استاتیک عمومی

قالب داده

Attrs DataFormat(
  StringPiece x
)