przepływ tensorowy:: ops:: Głębia do przestrzeni

#include <array_ops.h>

DepthToSpace dla tensorów typu T.

Streszczenie

Przestawia dane z głębi na bloki danych przestrzennych. Jest to odwrotna transformacja SpaceToDepth. Mówiąc dokładniej, ta operacja generuje kopię tensora wejściowego, w którym wartości z wymiaru depth są przenoszone w blokach przestrzennych do wymiarów height i width . Atrybut block_size wskazuje rozmiar bloku wejściowego i sposób przenoszenia danych.

  • Kawałki danych o rozmiarze block_size * block_size z głębokości są układane w nienakładające się bloki o rozmiarze block_size x block_size
  • Szerokość tensora wyjściowego to input_depth * block_size , natomiast wysokość to input_height * block_size .
  • Współrzędne Y, X w każdym bloku obrazu wyjściowego są określane przez składową wyższego rzędu indeksu kanału wejściowego.
  • Głębokość tensora wejściowego musi być podzielna przez block_size * block_size .

Atrybut data_format określa układ tensorów wejściowych i wyjściowych za pomocą następujących opcji: „NHWC”: [ batch, height, width, channels ] „NCHW”: [ batch, channels, height, width ] „NCHW_VECT_C”: qint8 [ batch, channels / 4, height, width, 4 ]

Warto rozważyć tę operację jako transformację tensora 6-D. np. dla format_danych = NHWC, każdy element tensora wejściowego można określić za pomocą 6 współrzędnych, uporządkowanych według malejącego znaczenia układu pamięci jako: n,iY,iX,bY,bX,oC (gdzie n=indeks wsadowy, iX, iY oznacza X lub Y w obrazie wejściowym, bX, bY oznaczają współrzędne w bloku wyjściowym, oC oznacza kanały wyjściowe). Dane wyjściowe będą danymi wejściowymi przetransponowanymi do następującego układu: n,iY,bY,iX,bX,oC

Ta operacja jest przydatna do zmiany rozmiaru aktywacji pomiędzy splotami (ale przy zachowaniu wszystkich danych), np. zamiast łączenia. Jest również przydatny do uczenia modeli czysto splotowych.

Na przykład, biorąc pod uwagę dane wejściowe kształtu [1, 1, 1, 4] , data_format = "NHWC" i block_size = 2:

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

  

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

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

Tutaj wejście ma partię 1, a każdy element partii ma kształt [1, 1, 4] , odpowiednie wyjście będzie miało 2x2 elementy i będzie miało głębokość 1 kanału (1 = 4 / (block_size * block_size) ). Kształt elementu wyjściowego to [2, 2, 1] .

Dla tensora wejściowego o większej głębokości, tutaj o kształcie [1, 1, 1, 12] , np.

x = [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]

Ta operacja, dla bloku o rozmiarze 2, zwróci następujący tensor kształtu [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]]]]

operator zwróci następujący tensor kształtu [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

wyjście

::tensorflow::Output output

Funkcje publiczne

Głębia do przestrzeni

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

Głębia do przestrzeni

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

węzeł

::tensorflow::Node * node() const 

operator::tensorflow::Wejście

 operator::tensorflow::Input() const 

operator::tensorflow::Wyjście

 operator::tensorflow::Output() const 

Publiczne funkcje statyczne

Format danych

Attrs DataFormat(
  StringPiece x
)