SpaceToDepth dla tensorów typu T.
Porządkuje bloki danych przestrzennych w głąb. Mówiąc dokładniej, ta operacja generuje kopię tensora wejściowego, w którym wartości z wymiarów „wysokość” i „szerokość” są przenoszone do wymiaru „głębokość”. Atrybut `block_size` wskazuje rozmiar bloku wejściowego.
* Nienakładające się bloki o rozmiarze `rozmiar_bloku x rozmiar bloku` są przestawiane na głębokość w każdym miejscu. * Głębokość tensora wyjściowego to `rozmiar_bloku * rozmiar_bloku * głębokość_wejściowa`. * Współrzędne Y, X w każdym bloku wejściowym stają się składnikiem wyższego rzędu indeksu kanału wyjściowego. * Wysokość i szerokość tensora wejściowego muszą być podzielne przez rozmiar_bloku.
Atrybut `data_format` określa układ tensorów wejściowych i wyjściowych z następującymi opcjami: "NHWC": `[ partia, wysokość, szerokość, kanały ]` "NCHW": `[ partia, kanały, wysokość, szerokość ]` " NCHW_VECT_C": `qint8 [ partia, kanały / 4, wysokość, szerokość, 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,oY,bY,oX,bX,iC (gdzie n=indeks wsadowy, oX, oY oznacza X lub Y w obrazie wyjściowym, bX, bY oznaczają współrzędne w bloku wejściowym, iC oznacza kanały wejściowe). Wynikiem byłaby transpozycja do następującego układu: n,oY,oX,bY,bX,iC
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ę kształt `[1, 2, 2, 1]`, data_format = "NHWC" i block_size = 2:
x = [[[[1], [2]],
[[3], [4]]]]
Ta operacja wygeneruje tensor kształtu „[1, 1, 1, 4]”: [[[[1, 2, 3, 4]]]]
Tutaj dane wejściowe mają partię 1, a każdy element partii ma kształt „[2, 2, 1]”, odpowiednie wyjście będzie miało pojedynczy element (tzn. szerokość i wysokość wynoszą 1) i będzie miało głębokość 4 kanałów (1 * rozmiar_bloku * rozmiar_bloku). Kształt elementu wyjściowego to „[1, 1, 4]”.Dla tensora wejściowego o większej głębokości, tutaj o kształcie „[1, 2, 2, 3]”, np.
x = [[[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]]]]
Ta operacja, dla block_size równej 2, zwróci następujący tensor kształtu `[1, 1, 1, 12]` [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]
Podobnie dla następującego wprowadzenia kształtu „[1 4 4 1]” i rozmiaru bloku wynoszącego 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]]]]
Klasy zagnieżdżone
klasa | Opcje SpaceToDepth | Opcjonalne atrybuty dla SpaceToDepth |
Stałe
Smyczkowy | OP_NAME | Nazwa tej operacji znana silnikowi rdzenia TensorFlow |
Metody publiczne
Wyjście <T> | jako wyjście () Zwraca symboliczny uchwyt tensora. |
statyczny <T rozszerza TType > SpaceToDepth <T> | |
statyczne SpaceToDepth.Options | dataFormat (String dataFormat) |
Wyjście <T> | wyjście () |
Metody dziedziczone
Stałe
publiczny statyczny końcowy ciąg znaków OP_NAME
Nazwa tej operacji znana silnikowi rdzenia TensorFlow
Metody publiczne
publiczne wyjście <T> asOutput ()
Zwraca symboliczny uchwyt tensora.
Dane wejściowe operacji TensorFlow są wynikami innej operacji TensorFlow. Ta metoda służy do uzyskania symbolicznego uchwytu reprezentującego obliczenia danych wejściowych.
public static SpaceToDepth <T> create (zakres zakresu , wejście argumentu <T>, długi rozmiar bloku, opcje... opcje)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację SpaceToDepth.
Parametry
zakres | aktualny zakres |
---|---|
Rozmiar bloku | Rozmiar bloku przestrzennego. |
opcje | przenosi opcjonalne wartości atrybutów |
Powroty
- nowa instancja SpaceToDepth