tensorflow :: ops :: FractionalMaxPool
#include <nn_ops.h>
Wykonuje ułamkowe maksymalne pule na wejściu.
streszczenie
Ułamkowa pula maksymalna różni się nieco od zwykłej puli maksymalnej. W zwykłym łączeniu maksymalnym zmniejszasz zbiór wejściowy, biorąc maksymalną wartość mniejszych N x N podsekcji zestawu (często 2x2) i próbujesz zmniejszyć zbiór o współczynnik N, gdzie N jest liczbą całkowitą. Maksymalne pule ułamkowe, jak można się spodziewać po słowie „ułamkowy”, oznaczają, że ogólny współczynnik redukcji N nie musi być liczbą całkowitą.
Rozmiary regionów puli są generowane losowo, ale są dość jednolite. Na przykład spójrzmy na wymiar wysokości i ograniczenia na liście wierszy, które będą granicami puli.
Najpierw definiujemy:
- input_row_length: liczba wierszy z zestawu wejściowego
- output_row_length: która będzie mniejsza niż wartość wejściowa
- alpha = input_row_length / output_row_length: nasz współczynnik redukcji
- K = podłoga (alfa)
- row_pooling_sequence: jest to lista wyników wierszy granic puli
Wtedy row_pooling_sequence powinno spełniać:
- a [0] = 0: pierwsza wartość sekwencji to 0
- a [koniec] = długość_wejścia_wejściowego: ostatnią wartością sekwencji jest rozmiar
- K <= (a [i + 1] - a [i]) <= K + 1: wszystkie przedziały mają rozmiar K lub K + 1
- length (row_pooling_sequence) = output_row_length + 1
Aby uzyskać więcej informacji na temat ułamkowego maksymalnego puli, zobacz ten artykuł: Benjamin Graham, Fractional Max-Pooling
Argumenty:
- zakres: obiekt Scope
- wartość: 4-D z kształtem
[batch, height, width, channels]
. - pooling_ratio: współczynnik puli dla każdego wymiaru
value
, obecnie obsługuje tylko wymiar wiersza i kolumny i powinien wynosić> = 1,0. Na przykład prawidłowy współczynnik puli wygląda następująco: [1,0, 1,44, 1,73, 1,0]. Pierwszy i ostatni element musi mieć wartość 1.0, ponieważ nie zezwalamy na łączenie według wymiarów partii i kanałów. 1,44 i 1,73 to stosunek puli do wymiarów wysokości i szerokości.
Atrybuty opcjonalne (patrz Attrs
):
- pseudo_random: Po ustawieniu na True generuje sekwencję puli w sposób pseudolosowy, w przeciwnym razie w sposób losowy. Sprawdź artykuł Benjamin Graham, Fractional Max-Pooling, aby zobaczyć różnicę między pseudolosowymi i losowymi.
- nakładanie się: ustawienie Prawda oznacza, że podczas łączenia wartości na granicy sąsiednich komórek puli 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 puli to [0, 2, 4], to 16 o indeksie 2 zostanie użyte dwukrotnie. Wynik wyniósłby [20, 16] dla ułamkowego maksymalnego puli.
- deterministic: w przypadku ustawienia wartości True podczas iteracji po węźle FractionalMaxPool na wykresie obliczeniowym będzie używany stały region puli. Używany głównie w teście jednostkowym, aby uczynić FractionalMaxPool deterministycznym.
- seed: Jeśli seed lub seed2 są ustawione na wartość niezerową, generator liczb losowych jest inicjowany przez dane ziarno. W przeciwnym razie jest wysiewany przez losowe ziarno.
- seed2: drugie ziarno, aby uniknąć kolizji nasion.
Zwroty:
-
Output
wyjściowe: wyjściowy tensor po ułamkowym maksymalnym pulowaniu. -
Output
row_pooling_sequence: sekwencja łączenia wierszy potrzebna do obliczenia gradientu. -
Output
col_pooling_sequence: sekwencja puli kolumn, potrzebna do obliczenia gradientu.
Konstruktorzy i niszczyciele | |
---|---|
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 metody ustawiające atrybuty dla FractionalMaxPool . |
Atrybuty publiczne
col_pooling_sequence
::tensorflow::Output col_pooling_sequence
operacja
Operation operation
wynik
::tensorflow::Output output
row_pooling_sequence
::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
Deterministyczne
Attrs Deterministic( bool x )
Nakładanie się
Attrs Overlapping( bool x )
PseudoRandom
Attrs PseudoRandom( bool x )
Nasionko
Attrs Seed( int64 x )
Seed2
Attrs Seed2( int64 x )