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:

  1. input_row_length: liczba wierszy z zestawu wejściowego
  2. output_row_length: która będzie mniejsza niż wartość wejściowa
  3. alpha = input_row_length / output_row_length: nasz współczynnik redukcji
  4. K = podłoga (alfa)
  5. row_pooling_sequence: jest to lista wyników wierszy granic puli

Wtedy row_pooling_sequence powinno spełniać:

  1. a [0] = 0: pierwsza wartość sekwencji to 0
  2. a [koniec] = długość_wejścia_wejściowego: ostatnią wartością sekwencji jest rozmiar
  3. K <= (a [i + 1] - a [i]) <= K + 1: wszystkie przedziały mają rozmiar K lub K + 1
  4. 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
)