tensoreflusso:: ops:: Piscina max frazionaria
#include <nn_ops.h>
Esegue il pooling massimo frazionario sull'input.
Riepilogo
Il pooling massimo frazionario è leggermente diverso dal pooling massimo normale. Nel normale pooling massimo, si ridimensiona un set di input prendendo il valore massimo delle sottosezioni N x N più piccole del set (spesso 2x2) e si tenta di ridurre il set di un fattore N, dove N è un numero intero. Il pooling massimo frazionario, come ci si potrebbe aspettare dalla parola "frazionario", significa che il rapporto di riduzione complessivo N non deve essere un numero intero.
Le dimensioni delle regioni di pooling vengono generate in modo casuale ma sono abbastanza uniformi. Ad esempio, esaminiamo la dimensione dell'altezza e i vincoli sull'elenco di righe che costituiranno i confini del pool.
Per prima cosa definiamo quanto segue:
- input_row_length: il numero di righe dal set di input
- output_row_length: che sarà più piccolo dell'input
- alpha = input_row_length / output_row_length: il nostro rapporto di riduzione
- K = pavimento(alfa)
- row_pooling_sequence: questo è l'elenco dei risultati delle righe di confine del pool
Quindi, row_pooling_sequence dovrebbe 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 sono di dimensione K o K+1
- length(row_pooling_sequence) = output_row_length+1
Per maggiori dettagli sul pooling massimo frazionario, vedere questo articolo: Benjamin Graham, Fractional Max-Pooling
Argomenti:
- scope: un oggetto Scope
- valore: 4-D con forma
[batch, height, width, channels]
. - pooling_ratio: rapporto di pooling per ogni dimensione di
value
, attualmente supporta solo la dimensione riga e colonna e dovrebbe essere >= 1,0. Ad esempio, un rapporto di pooling valido è [1.0, 1.44, 1.73, 1.0]. Il primo e l'ultimo elemento devono essere 1.0 perché non consentiamo il raggruppamento su dimensioni batch e canali. 1,44 e 1,73 sono rapporti di pooling rispettivamente sulle dimensioni di altezza e larghezza.
Attributi facoltativi (vedi Attrs
):
- pseudo_random: se impostato su True, genera la sequenza di pooling in modo pseudocasuale, altrimenti in modo casuale. Controllare l'articolo Benjamin Graham, Fractional Max-Pooling per la differenza tra pseudocasuale e casuale.
- sovrapposizione: se impostato su True, significa che durante il raggruppamento, i valori al confine delle celle di raggruppamento adiacenti vengono utilizzati da entrambe le celle. Per esempio:
index 0 1 2 3 4
value 20 5 16 3 7
Se la sequenza di pool è [0, 2, 4], allora 16, nell'indice 2 verrà utilizzato due volte. Il risultato sarebbe [20, 16] per il pooling massimo frazionario.
- deterministico: se impostato su True, verrà utilizzata una regione di pooling fissa durante l'iterazione su un nodo FractionalMaxPool nel grafico di calcolo. Utilizzato principalmente nel test unitario per rendere deterministico FractionalMaxPool .
- seme: se seme o seme2 sono impostati su un valore diverso da zero, il generatore di numeri casuali viene seminato dal seme specificato. Altrimenti, viene seminato da un seme casuale.
- seed2: un secondo seme per evitare la collisione del seme.
Resi:
- Output
Output
: tensore di output dopo il pooling massimo frazionario. -
Output
row_pooling_sequence: sequenza di pooling delle righe, 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 pubbliche statiche | |
---|---|
Deterministic (bool x) | |
Overlapping (bool x) | |
PseudoRandom (bool x) | |
Seed (int64 x) | |
Seed2 (int64 x) |
Strutture | |
---|---|
tensorflow:: ops:: FractionalMaxPool:: Attrs | Setter di attributi facoltativi per FractionalMaxPool . |
Attributi pubblici
col_pooling_sequence
::tensorflow::Output col_pooling_sequence
operazione
Operation operation
produzione
::tensorflow::Output output
sequenza_pooling_righe
::tensorflow::Output row_pooling_sequence
Funzioni pubbliche
Piscina max frazionaria
FractionalMaxPool( const ::tensorflow::Scope & scope, ::tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio )
Piscina max frazionaria
FractionalMaxPool( const ::tensorflow::Scope & scope, ::tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs )
Funzioni pubbliche statiche
deterministico
Attrs Deterministic( bool x )
Sovrapposizione
Attrs Overlapping( bool x )
Pseudocasuale
Attrs PseudoRandom( bool x )
Seme
Attrs Seed( int64 x )
Seme2
Attrs Seed2( int64 x )