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 rozmiarzeblock_size x block_size
- Szerokość tensora wyjściowego to
input_depth * block_size
, natomiast wysokość toinput_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:
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
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 )