tensorflow::ops::FractionalMaxPool

#include <nn_ops.h>

Esegue il max pooling frazionario sull'input.

Riepilogo

Il max pooling frazionario è leggermente diverso dal max pooling tradizionale. Nel max pooling tradizionale, si riduce la dimensione di un insieme di input prendendo il valore massimo di sottosezioni più piccole N x N dell'insieme (spesso 2x2) e si cerca di ridurre l'insieme di un fattore N, dove N è un numero intero. Il max pooling frazionario, come si può intuire dal termine "frazionario", significa che il rapporto di riduzione complessivo N non deve necessariamente essere un numero intero.

Le dimensioni delle regioni di pooling vengono generate in modo casuale, ma sono abbastanza uniformi. Ad esempio, consideriamo la dimensione dell'altezza e i vincoli sull'elenco delle righe che costituiranno i confini del pool.

Innanzitutto definiamo quanto segue:

  1. input_row_length: il numero di righe del set di input
  2. output_row_length: che sarà inferiore all'input
  3. alpha = lunghezza_riga_input / lunghezza_riga_output: il nostro rapporto di riduzione
  4. K = floor(alfa)
  5. row_pooling_sequence: questo è l'elenco risultante delle righe del confine del pool

Quindi, row_pooling_sequence deve soddisfare:

  1. a[0] = 0 : il primo valore della sequenza è 0
  2. a[end] = input_row_length : l'ultimo valore della sequenza è la dimensione
  3. K <= (a[i+1] - a[i]) <= K+1 : tutti gli intervalli hanno dimensione K o K+1
  4. lunghezza(sequenza_di_pooling_righe) = lunghezza_riga_output+1

Per maggiori dettagli sul fractional max pooling, consultare questo articolo: Benjamin Graham, Fractional Max-Pooling

Argomentazioni:

  • ambito: un oggetto Scope
  • valore: 4-D con forma [batch, height, width, channels] .
  • pooling_ratio: Rapporto di pooling per ciascuna dimensione del value , attualmente supporta solo le dimensioni riga e colonna e deve essere >= 1.0. Ad esempio, un rapporto di pooling valido è simile a [1.0, 1.44, 1.73, 1.0]. Il primo e l'ultimo elemento devono essere 1.0 perché non consentiamo il pooling sulle dimensioni batch e canali. 1.44 e 1.73 sono rispettivamente i rapporti di pooling sulle dimensioni altezza e larghezza.

Attributi opzionali (vedere Attrs ):

  • pseudo_random: Se impostato su True, genera la sequenza di pooling in modo pseudocasuale, altrimenti in modo casuale. Consultare l'articolo di Benjamin Graham, Fractional Max-Pooling, per la differenza tra pseudocasuale e casuale.
  • Sovrapposizione: se impostato su True, significa che durante il pooling i valori al confine delle celle di pooling adiacenti vengono utilizzati da entrambe le celle. Ad esempio:

index 0 1 2 3 4

value 20 5 16 3 7

Se la sequenza di pooling è [0, 2, 4], allora 16, all'indice 2, verrà utilizzato due volte. Il risultato sarebbe [20, 16] per il max pooling frazionario.

  • deterministico: se impostato su True, verrà utilizzata una regione di pooling fissa durante l'iterazione su un nodo FractionalMaxPool nel grafo computazionale. Utilizzato principalmente nei test unitari per rendere FractionalMaxPool deterministico.
  • seed: Se seed o seed2 sono impostati su un valore diverso da zero, il generatore di numeri casuali viene inizializzato con il seed specificato. Altrimenti, viene inizializzato con un seed casuale.
  • seed2: Un secondo seme per evitare collisioni tra i semi.

Resi:

  • Output output: tensore di output dopo il max pooling frazionario.
  • Sequenza di row pooling Output : sequenza di row pooling, necessaria per calcolare il gradiente.
  • Output col_pooling_sequence: sequenza di pooling delle colonne, necessaria per calcolare il gradiente.

Costruttori e distruttori

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)

attributi pubblici

col_pooling_sequence
operation
output
row_pooling_sequence

Funzioni statiche pubbliche

Deterministic (bool x)
Overlapping (bool x)
PseudoRandom (bool x)
Seed (int64 x)
Seed2 (int64 x)

Strutture

tensorflow::ops::FractionalMaxPool::Attrs

Impostatori di attributi opzionali per FractionalMaxPool .

attributi pubblici

sequenza di col_pooling

::tensorflow::Output col_pooling_sequence

operazione

Operation operation

produzione

::tensorflow::Output output

sequenza di pooling delle righe

::tensorflow::Output row_pooling_sequence

Funzioni pubbliche

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
)

Funzioni statiche pubbliche

Deterministico

Attrs Deterministic(
  bool x
)

Sovrapposizione

Attrs Overlapping(
  bool x
)

Pseudocasuale

Attrs PseudoRandom(
  bool x
)

Seme

Attrs Seed(
  int64 x
)

Seed2

Attrs Seed2(
  int64 x
)