جریان تنسور:: عملیات:: DepthToSpace

#include <array_ops.h>

DepthToSpace برای تانسورهای نوع 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 attr طرح بندی تانسورهای ورودی و خروجی را با گزینه های زیر مشخص می کند: "NHWC": [ batch, height, width, channels ] "NCHW": [ batch, channels, height, width ] "NCHW_VECT_C": qint8 [ batch, channels / 4, height, width, 4 ]

در نظر گرفتن این عملیات به عنوان تبدیل یک تانسور 6 بعدی مفید است. به عنوان مثال برای 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 کانال خواهد بود (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

 DepthToSpace(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  int64 block_size
)

DepthToSpace

 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 

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

DataFormat

Attrs DataFormat(
  StringPiece x
)