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:

  1. input_row_length: il numero di righe dal set di input
  2. output_row_length: che sarà più piccolo dell'input
  3. alpha = input_row_length / output_row_length: il nostro rapporto di riduzione
  4. K = pavimento(alfa)
  5. row_pooling_sequence: questo è l'elenco dei risultati delle righe di confine del pool

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 di dimensione K o K+1
  4. length(row_pooling_sequence) = output_row_length+1

Per ulteriori 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.

Ritorna:

  • 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

riga_pooling_sequenza

::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
)