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