przepływ tensorowy:: ops:: FractionalMaxPool
#include <nn_ops.h>
Wykonuje ułamkowe maksymalne łączenie na wejściu.
Streszczenie
Maksymalne łączenie ułamkowe różni się nieco od zwykłego łączenia maksymalnego. W przypadku zwykłego łączenia maksymalnego zmniejszasz zbiór wejściowy, biorąc maksymalną wartość 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ą. Maksymalne łączenie ułamkowe, jak można się spodziewać po słowie „ułamkowy”, oznacza, że ogólny współczynnik redukcji N nie musi być liczbą całkowitą.
Rozmiary regionów łączenia są generowane losowo, ale są dość jednolite. Przyjrzyjmy się na przykład wymiarowi wysokości i ograniczeniom na liście wierszy, które będą granicami puli.
Najpierw definiujemy co następuje:
- input_row_length : liczba wierszy ze zbioru wejściowego
- długość_wiersza_wyjściowego: która będzie mniejsza niż wartość wejściowa
- alfa = długość_wiersza_wejściowego / długość_wiersza_wyjściowego: nasz współczynnik redukcji
- K = podłoga (alfa)
- row_pooling_sequence : jest to lista wyników wierszy granic puli
Następnie row_pooling_sequence powinna spełniać:
- a[0] = 0: pierwsza wartość ciągu to 0
- a[end] = długość_wiersza_wejściowego: ostatnia wartość sekwencji to rozmiar
- K <= (a[i+1] - a[i]) <= K+1 : wszystkie przedziały mają rozmiar K lub K+1
- długość(row_pooling_sequence) = wyjściowa długość_wiersza+1
Więcej szczegółów na temat maksymalnego łączenia ułamkowego można znaleźć w artykule: Benjamin Graham, Fractional Max-Pooling
Argumenty:
- zakres: Obiekt Scope
- wartość: 4-D z kształtem
[batch, height, width, channels]
. - Pooling_ratio: Współczynnik łączenia dla każdego wymiaru
value
, obecnie obsługuje tylko wymiar wierszy i kolumn i powinien wynosić >= 1,0. Na przykład prawidłowy współczynnik łączenia 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 łączenie wymiarów partii i kanałów. 1,44 i 1,73 to współczynnik łączenia odpowiednio wysokości i szerokości.
Opcjonalne atrybuty (patrz Attrs
):
- pseudo_random: Po ustawieniu na True generuje sekwencję łączenia w sposób pseudolosowy, w przeciwnym razie w sposób losowy. Sprawdź artykuł Benjamina Grahama, Fractional Max-Pooling pod kątem różnicy między pseudolosowością a losowością.
- nakładanie się: ustawienie na True 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. Wynikiem będzie [20, 16] dla ułamkowego maksymalnego łączenia.
- deterministyczny: po ustawieniu wartości True podczas iteracji po węźle FractionalMaxPool na wykresie obliczeniowym używany będzie stały obszar puli. Używane głównie w teście jednostkowym, aby uczynić FractionalMaxPool deterministycznym.
- ziarno: Jeśli ziarno lub ziarno2 jest ustawione na wartość różną od zera, generator liczb losowych jest zaszczepiany przez dane ziarno. W przeciwnym razie jest on zaszczepiany losowo.
- nasiono2: Drugie ziarno, aby uniknąć kolizji nasion.
Zwroty:
- Wyjście
Output
: tensor wyjściowy po ułamkowym maksymalnym łączeniu. -
Output
row_pooling_sequence: sekwencja łączenia wierszy potrzebna do obliczenia gradientu. -
Output
col_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:: Atrybuty | Opcjonalne moduły ustawiające atrybuty dla FractionalMaxPool . |
Atrybuty publiczne
col_pooling_sequence
::tensorflow::Output col_pooling_sequence
działanie
Operation operation
wyjście
::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
Deterministyczny
Attrs Deterministic( bool x )
Nakładające się
Attrs Overlapping( bool x )
Pseudolosowy
Attrs PseudoRandom( bool x )
Nasienie
Attrs Seed( int64 x )
Nasienie2
Attrs Seed2( int64 x )