tensorflow:: ops:: FractionalMaxPool
#include <nn_ops.h>Wykonuje ułamkowe maksymalne grupowanie na wejściu.
Streszczenie
Ułamkowe łączenie maksymalne różni się nieco od zwykłego łączenia maksymalnego. W zwykłym łączeniu maksymalnym zmniejsza się rozmiar zbioru wejściowego, biorąc wartość maksymalną z mniejszych N x N podsekcji zbioru (często 2x2) i próbując zmniejszyć zbiór o współczynnik N, gdzie N jest liczbą całkowitą. Ułamkowe łączenie maksymalne, jak można się spodziewać po słowie „ułamkowe”, oznacza, że całkowity współczynnik redukcji N nie musi być liczbą całkowitą.
Rozmiary obszarów puli są generowane losowo, ale są dość jednolite. Przyjrzyjmy się na przykład wymiarowi wysokości i ograniczeniom listy wierszy, które będą granicami puli.
Najpierw zdefiniujmy następujące kwestie:
- input_row_length : liczba wierszy z zestawu wejściowego
- output_row_length: która będzie mniejsza niż długość wejściowa
- alfa = długość_wiersza_wejściowego / długość_wiersza_wyjściowego : nasz współczynnik redukcji
- K = podłoga (alfa)
- row_pooling_sequence: to jest lista wyników wierszy granic puli
Następnie row_pooling_sequence powinno spełniać:
- a[0] = 0 : pierwsza wartość sekwencji to 0
- a[end] = input_row_length : ostatnia wartość sekwencji to rozmiar
- K <= (a[i+1] - a[i]) <= K+1 : wszystkie przedziały mają rozmiar K lub K+1
- długość(sekwencja_row_poolingu) = długość_wiersza_wyjściowego+1
Więcej szczegółów na temat ułamkowego maksymalnego łączenia grup można znaleźć w tym artykule: Benjamin Graham, Fractional Max-Pooling
Argumenty:
- zakres: obiekt zakresu
- wartość: 4-D z kształtem
[batch, height, width, channels]. - pooling_ratio: Współczynnik poolingu dla każdego wymiaru
value, obecnie obsługuje tylko wymiar wiersza i kolumny i powinien być ≥ 1,0. Na przykład, prawidłowy współczynnik poolingu wygląda następująco: [1,0, 1,44, 1,73, 1,0]. Pierwszy i ostatni element muszą mieć wartość 1,0, ponieważ nie zezwalamy na pooling w wymiarach wsadowych i kanałowych. 1,44 i 1,73 to współczynnik poolingu odpowiednio dla wymiarów wysokości i szerokości.
Atrybuty opcjonalne (patrz Attrs ):
- pseudo_random: Po ustawieniu na True, sekwencja puli jest generowana w sposób pseudolosowy, w przeciwnym razie w sposób losowy. Sprawdź artykuł Benjamina Grahama, Fractional Max-Pooling, aby poznać różnicę między pseudolosowością a losowością.
- Nakładanie: Ustawienie na „Prawda” oznacza, że podczas łączenia wartości na granicy sąsiednich komórek łączenia są używane przez obie komórki. Na przykład:
index 0 1 2 3 4
value 20 5 16 3 7
Jeśli sekwencja łączenia to [0, 2, 4], wówczas 16 o indeksie 2 zostanie użyte dwukrotnie. Wynik będzie wynosić [20, 16] dla łączenia ułamkowego maksymalnego.
- deterministyczny: Po ustawieniu na wartość „Prawda” podczas iteracji po węźle FractionalMaxPool na grafie obliczeniowym używany będzie stały obszar puli. Używane głównie w testach jednostkowych, aby uczynić FractionalMaxPool deterministycznym.
- seed: Jeśli albo seed, albo seed2 są ustawione na wartość różną od zera, generator liczb losowych jest zasiewany na podstawie podanego seeda. W przeciwnym razie jest zasiewany na podstawie losowego seeda.
- seed2: Drugie nasiono zapobiegające kolizji z nasionami.
Zwroty:
- Wyjście
Output: tensor wyjściowy po ułamkowym maksymalnym połączeniu. -
Outputrow_pooling_sequence: sekwencja łączenia wierszy potrzebna do obliczenia gradientu. -
Outputcol_pooling_sequence: sekwencja łączenia kolumn potrzebna do obliczenia gradientu.
Konstruktory i destruktory | |
|---|---|
FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio) | |
FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs) |
Atrybuty publiczne | |
|---|---|
col_pooling_sequence | |
operation | |
output | |
row_pooling_sequence | |
Publiczne funkcje statyczne | |
|---|---|
Deterministic (bool x) | |
Overlapping (bool x) | |
PseudoRandom (bool x) | |
Seed (int64 x) | |
Seed2 (int64 x) | |
Struktury | |
|---|---|
| tensorflow:: ops:: FractionalMaxPool:: Attrs | Opcjonalne settery atrybutów dla FractionalMaxPool . |
Atrybuty publiczne
sekwencja_grupowania_kolumn
::tensorflow::Output col_pooling_sequence
działanie
Operation operation
wyjście
::tensorflow::Output output
sekwencja_row_pooling
::tensorflow::Output row_pooling_sequence
Funkcje publiczne
FractionalMaxPool
FractionalMaxPool( const ::tensorflow::Scope & scope, ::tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio )
FractionalMaxPool
FractionalMaxPool( const ::tensorflow::Scope & scope, ::tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs )
Publiczne funkcje statyczne
Deterministyczny
Attrs Deterministic( bool x )
Nakładające się
Attrs Overlapping( bool x )
Pseudolosowy
Attrs PseudoRandom( bool x )
Nasienie
Attrs Seed( int64 x )
Seed2
Attrs Seed2( int64 x )