Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

tf.nn.space_to_depth

TensorFlow 1 wersja Zobacz źródło na GitHub

SpaceToDepth do tensorów typu T.

Reorganizuje bloków danych przestrzennych, do głębi. Dokładniej, op wysyła kopię tensora wejściowych, gdzie wartości od height i width wymiary są przenoszone do depth wymiaru. Atr block_size wskazuje rozmiar bloku wejściowego.

  • Nie nakładających się bloków o rozmiarze block_size x block size są uporządkowane w głębokości na każdym miejscu.
  • Głębokość tensora wyjściowym jest block_size * block_size * input_depth .
  • Współrzędne Y, X w każdym bloku wejścia się wysoki składnik celu indeksu kanału wyjściowego.
  • Wysokość i szerokość wejściu tensora musi być podzielna przez block_size.

W data_format określa attr układ z tensorów wejściowych i wyjściowych z 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ć operację jako przekształcenia 6-D Tensor. np data_format = NHWC, każdy element tensora wejściowej może być określona przez 6 współrzędnych uporządkowane zmniejszając pamięci układu znaczenie jak N, Oy, na przykład przez OX bX iC (gdzie n = wskaźnik wsadowego OX OY oznacza X lub współrzędnych Y w obrazie wyjściowym BX za pomocą współrzędnych w bloku wejściowym iC oznacza kanały wejściowe). Wyjście będzie transpozycji do układu następujący: n, OY, wołu, na przykład przez bX iC

Operacja ta jest użyteczna do zmiany rozmiaru aktywacji między zwojami (ale z zachowaniem wszystkich danych), na przykład, zamiast łączenia. Jest także przydatny dla szkolenia modeli czysto splotowych.

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

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

Wyjście to operacja będzie tensora kształtu [1, 1, 1, 4] :

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

Tutaj wkład ma partię 1, a każdy element partię kształtu [2, 2, 1] , odpowiedni wyjściowy będzie miał jeden element (czyli szerokość i wysokość o 1) i mają głębokość 4 kanałów (1 * block_size * block_size). Kształt elementu wyjściowy [1, 1, 4] .

Dla tensora wejściowego większej głębokości, tutaj w kształcie [1, 2, 2, 3] , na przykład

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

Operacja ta, na block_size 2 powróci następujące tensor kształtu [1, 1, 1, 12]

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

Podobnie, dla następnego wejścia kształtu [1 4 4 1] i rozmiaru bloku 2:

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

operator zwrócić następujący tensor kształtu [1 2 2 4] :

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

input Tensor .
block_size int że jest >= 2 . Rozmiar bloku przestrzennej.
data_format Opcjonalny string od: "NHWC", "NCHW", "NCHW_VECT_C" . Domyślnie "NHWC" .
name Nazwę operacji (opcjonalnie).

Tensor . Ten sam typ jako input .