Esegue il pooling massimo frazionario sull'input.
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:
1. input_row_length: il numero di righe dal set di input 2. output_row_length: che sarà inferiore all'input 3. alpha = input_row_length / output_row_length: il nostro rapporto di riduzione 4. K = floor(alpha) 5. row_pooling_sequence: questo è il risultato elenco delle righe di confine della piscina
Quindi, row_pooling_sequence dovrebbe 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 sono K o K+1 dimensione 4. length(row_pooling_sequence) = output_row_length+1
Per ulteriori dettagli sul pooling massimo frazionario, vedere questo articolo: [Benjamin Graham, Fractional Max-Pooling](http://arxiv.org/abs/1412.6071)
Classi nidificate
classe | FractionalMaxPool.Options | Attributi facoltativi per FractionalMaxPool |
Costanti
Corda | OP_NAME | Il nome di questa operazione, come noto al motore principale di TensorFlow |
Metodi pubblici
Uscita < TInt64 > | colPoolingSequence () sequenza di pooling delle colonne, necessaria per calcolare il gradiente. |
statico <T estende TNumber > FractionalMaxPool <T> | create (ambito ambito , valore operando <T>, elenco<float> poolingRatio, opzioni... opzioni) Metodo factory per creare una classe che racchiude una nuova operazione FractionalMaxPool. |
statico FractionalMaxPool.Options | deterministico (deterministico booleano) |
Uscita <T> | produzione () tensore di output dopo il pooling massimo frazionario. |
statico FractionalMaxPool.Options | sovrapposizione (sovrapposizione booleana) |
statico FractionalMaxPool.Options | pseudoCasuale (pseudocasuale booleano) |
Uscita < TInt64 > | rigaPoolingSequence () sequenza di pooling delle righe, necessaria per calcolare il gradiente. |
statico FractionalMaxPool.Options | seme (seme lungo) |
statico FractionalMaxPool.Options | seme2 (seme lungo2) |
Metodi ereditati
Costanti
Stringa finale statica pubblica OP_NAME
Il nome di questa operazione, come noto al motore principale di TensorFlow
Metodi pubblici
Output pubblico < TInt64 > colPoolingSequence ()
sequenza di pooling delle colonne, necessaria per calcolare il gradiente.
public static FractionalMaxPool <T> create ( ambito ambito , valore operando <T>, List<Float> poolingRatio, Opzioni... opzioni)
Metodo factory per creare una classe che racchiude una nuova operazione FractionalMaxPool.
Parametri
scopo | ambito attuale |
---|---|
valore | 4-D con forma "[lotto, altezza, larghezza, canali]". |
rapporto di raggruppamento | Rapporto di pooling per ciascuna dimensione di "valore", 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. |
opzioni | trasporta valori di attributi opzionali |
ritorna
- una nuova istanza di FractionalMaxPool
public static FractionalMaxPool.Options deterministico (deterministico booleano)
Parametri
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. |
---|
public static FractionalMaxPool.Options sovrapposte (sovrapposizione booleana)
Parametri
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: "indice 0 1 2 3 4". "valore 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. |
---|
public static FractionalMaxPool.Options pseudoRandom (booleano pseudoRandom)
Parametri
pseudoCasuale | Se impostato su True, genera la sequenza di pooling in modo pseudocasuale, altrimenti in modo casuale. Controllare il documento [Benjamin Graham, Fractional Max-Pooling](http://arxiv.org/abs/1412.6071) per la differenza tra pseudocasuale e casuale. |
---|
output pubblico < TInt64 > rowPoolingSequence ()
sequenza di pooling delle righe, necessaria per calcolare il gradiente.
seme pubblico statico FractionalMaxPool.Options (seme lungo)
Parametri
seme | Se seed o seed2 sono impostati su un valore diverso da zero, il generatore di numeri casuali viene seminato dal seed specificato. Altrimenti, viene seminato da un seme casuale. |
---|
pubblico statico FractionalMaxPool.Options seed2 (seme lungo2)
Parametri
seme2 | Un secondo seme per evitare la collisione dei semi. |
---|