FractionalMaxPool

publiczna klasa końcowa FractionalMaxPool

Wykonuje ułamkowe maksymalne łączenie na wejściu.

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:

1. długość_wiersza_wejściowego: liczba wierszy ze zbioru wejściowego 2. długość_wiersza_wyjściowego: która będzie mniejsza niż długość_wiersza wejściowego 3. alpha = długość_wiersza_wejściowego / długość_wiersza_wyjściowego: nasz współczynnik redukcji 4. K = podłoga(alfa) 5. sekwencja_wiersza_wiersza: to jest wynik lista wierszy granic puli

Następnie row_pooling_sequence powinna spełniać:

1. a[0] = 0 : pierwsza wartość ciągu to 0 2. a[end] = długość_wiersza_wejściowego : ostatnia wartość ciągu to rozmiar 3. K <= (a[i+1] - a[ i]) <= K+1 : wszystkie przedziały to K lub K+1, rozmiar 4. długość (sekwencja_wiersza) = długość_wiersza_wyjściowa+1

Więcej szczegółów na temat ułamkowego łączenia maksymalnego można znaleźć w tym artykule: [Benjamin Graham, Fractional Max-Pooling](http://arxiv.org/abs/1412.6071)

Klasy zagnieżdżone

klasa Opcje FractionalMaxPool Opcjonalne atrybuty dla FractionalMaxPool

Stałe

Strunowy OP_NAME Nazwa tej operacji znana silnikowi rdzenia TensorFlow

Metody publiczne

Dane wyjściowe <TInt64>
colPoolingSequence ()
sekwencja łączenia kolumn, potrzebna do obliczenia gradientu.
statyczny <T rozszerza TNumber > FractionalMaxPool <T>
utwórz (zakres zakresu , wartość argumentu <T>, lista<Float> PoolingRatio, opcje... opcje)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację FractionalMaxPool.
statyczne FractionalMaxPool.Options
deterministyczny (deterministyczny Boole'a)
Wyjście <T>
wyjście ()
tensor wyjściowy po ułamkowym maksymalnym łączeniu.
statyczne FractionalMaxPool.Options
nakładanie się (nakładanie się logiczne)
statyczne FractionalMaxPool.Options
pseudoRandom (Boolean pseudoRandom)
Dane wyjściowe <TInt64>
wierszPoolingSequence ()
sekwencja łączenia wierszy, potrzebna do obliczenia gradientu.
statyczne FractionalMaxPool.Options
nasiona (długie nasiona)
statyczne FractionalMaxPool.Options
nasiona 2 (Długie nasiona 2)

Metody dziedziczone

Stałe

publiczny statyczny końcowy ciąg znaków OP_NAME

Nazwa tej operacji znana silnikowi rdzenia TensorFlow

Wartość stała: „FractionalMaxPool”

Metody publiczne

publiczne wyjście < TInt64 > colPoolingSequence ()

sekwencja łączenia kolumn, potrzebna do obliczenia gradientu.

public static FractionalMaxPool <T> create ( Zakres zakresu, Wartość argumentu <T>, Lista<Float> PoolingRatio, Opcje... opcje)

Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację FractionalMaxPool.

Parametry
zakres aktualny zakres
wartość 4-D o kształcie „[partia, wysokość, szerokość, kanały]”.
współczynnik łączenia Współczynnik łączenia dla każdego wymiaru „wartości”, 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.
opcje przenosi opcjonalne wartości atrybutów
Zwroty
  • nowa instancja FractionalMaxPool

public static FractionalMaxPool.Options deterministyczny (deterministyczny Boole'a)

Parametry
deterministyczny Po ustawieniu wartości True podczas iteracji po węźle FractionalMaxPool na wykresie obliczeniowym używany będzie stały region puli. Używane głównie w teście jednostkowym, aby uczynić FractionalMaxPool deterministycznym.

publiczne wyjście <T> wyjście ()

tensor wyjściowy po ułamkowym maksymalnym łączeniu.

publiczne statyczne FractionalMaxPool.Options nakładające się (nakładanie się wartości logicznych)

Parametry
nakładające się Kiedy jest ustawione na True, oznacza to, że podczas łączenia wartości na granicy sąsiednich komórek łączenia są używane przez obie komórki. Na przykład:

„indeks 0 1 2 3 4”.

„wartość 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.

public static FractionalMaxPool.Options pseudoRandom (Boolean pseudoRandom)

Parametry
pseudolosowe Po ustawieniu na True generuje sekwencję łączenia w sposób pseudolosowy, w przeciwnym razie w sposób losowy. Sprawdź artykuł [Benjamin Graham, Fractional Max-Pooling] (http://arxiv.org/abs/1412.6071) pod kątem różnicy między pseudolosowością a losowością.

publiczne dane wyjściowe < TInt64 > rowPoolingSequence ()

sekwencja łączenia wierszy, potrzebna do obliczenia gradientu.

public static FractionalMaxPool.Options ziarno (długie ziarno)

Parametry
nasionko 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.

public static FractionalMaxPool.Options ziarno2 (długie ziarno2)

Parametry
ziarno2 Drugie ziarno, aby uniknąć kolizji nasion.