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:
- input_row_length: il numero di righe del set di input
- output_row_length: che sarà inferiore all'input
- alpha = lunghezza_riga_input / lunghezza_riga_output: il nostro rapporto di riduzione
- K = floor(alfa)
- row_pooling_sequence: questo è l'elenco risultante delle righe del confine del pool
Quindi, row_pooling_sequence deve soddisfare:
- a[0] = 0 : il primo valore della sequenza è 0
- a[end] = input_row_length : l'ultimo valore della sequenza è la dimensione
- K <= (a[i+1] - a[i]) <= K+1 : tutti gli intervalli hanno dimensione K o K+1
- 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:
-
Outputoutput: tensore di output dopo il max pooling frazionario. - Sequenza di row pooling
Output: sequenza di row pooling, necessaria per calcolare il gradiente. -
Outputcol_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 )