tensorflow :: operaciones :: FractionalMaxPool
#include <nn_ops.h>
Realiza un agrupamiento máximo fraccional en la entrada.
Resumen
La agrupación máxima fraccionada es ligeramente diferente a la agrupación máxima normal. En la agrupación máxima normal, se reduce el tamaño de un conjunto de entrada tomando el valor máximo de las subsecciones N x N más pequeñas del conjunto (a menudo 2x2) y se intenta reducir el conjunto en un factor de N, donde N es un número entero. La agrupación máxima fraccionada, como podría esperarse de la palabra "fraccional", significa que la tasa de reducción general N no tiene que ser un número entero.
Los tamaños de las regiones de agrupación se generan aleatoriamente pero son bastante uniformes. Por ejemplo, veamos la dimensión de altura y las restricciones en la lista de filas que serán los límites del grupo.
Primero definimos lo siguiente:
- input_row_length: el número de filas del conjunto de entrada
- output_row_length: que será más pequeño que la entrada
- alpha = input_row_length / output_row_length: nuestra relación de reducción
- K = piso (alfa)
- row_pooling_sequence: esta es la lista de resultados de las filas del límite del grupo
Entonces, row_pooling_sequence debería satisfacer:
- a [0] = 0: el primer valor de la secuencia es 0
- a [end] = input_row_length: el último valor de la secuencia es el tamaño
- K <= (a [i + 1] - a [i]) <= K + 1: todos los intervalos son de tamaño K o K + 1
- longitud (row_pooling_sequence) = output_row_length + 1
Para obtener más detalles sobre la agrupación máxima fraccional, consulte este artículo: Benjamin Graham, Fractional Max-Pooling
Argumentos:
- alcance: un objeto de alcance
- valor: 4-D con forma
[batch, height, width, channels]
. - pooling_ratio: Relación de agrupación para cada dimensión de
value
, actualmente solo admite la dimensión de fila y columna y debe ser> = 1.0. Por ejemplo, una proporción de agrupación válida se parece a [1.0, 1.44, 1.73, 1.0]. El primer y último elemento deben ser 1.0 porque no permitimos la agrupación en las dimensiones de lote y canales. 1,44 y 1,73 son la relación de agrupación en las dimensiones de altura y anchura respectivamente.
Atributos opcionales (consulte Attrs
):
- pseudo_random: cuando se establece en True, genera la secuencia de agrupación de forma pseudoaleatoria; de lo contrario, de forma aleatoria. Consulte el papel de Benjamin Graham, Fractional Max-Pooling para ver la diferencia entre pseudoaleatorio y aleatorio.
- superposición: cuando se establece en Verdadero, significa que cuando se agrupan, ambas celdas utilizan los valores en el límite de las celdas de agrupación adyacentes. Por ejemplo:
index 0 1 2 3 4
value 20 5 16 3 7
Si la secuencia de agrupación es [0, 2, 4], se utilizará dos veces 16 en el índice 2. El resultado sería [20, 16] para la agrupación máxima fraccionada.
- determinista: cuando se establece en Verdadero, se utilizará una región de agrupación fija al iterar sobre un nodo FractionalMaxPool en el gráfico de cálculo. Se utiliza principalmente en pruebas unitarias para hacer que FractionalMaxPool sea determinista.
- semilla: si semilla o semilla2 se establecen en un valor distinto de cero, el generador de números aleatorios se sembró con la semilla dada. De lo contrario, es sembrado por una semilla aleatoria.
- seed2: Una segunda semilla para evitar la colisión de semillas.
Devoluciones:
-
Output
salida: tensor de salida después de la agrupación máxima fraccionada. -
Output
row_pooling_sequence: secuencia de agrupación de filas, necesaria para calcular el gradiente. -
Output
col_pooling_sequence: secuencia de agrupación de columnas, necesaria para calcular el gradiente.
Constructores y Destructores | |
---|---|
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) |
Atributos públicos | |
---|---|
col_pooling_sequence | |
operation | |
output | |
row_pooling_sequence |
Funciones estáticas públicas | |
---|---|
Deterministic (bool x) | |
Overlapping (bool x) | |
PseudoRandom (bool x) | |
Seed (int64 x) | |
Seed2 (int64 x) |
Estructuras | |
---|---|
tensorflow :: ops :: FractionalMaxPool :: Attrs | Establecedores de atributos opcionales para FractionalMaxPool . |
Atributos públicos
col_pooling_sequence
::tensorflow::Output col_pooling_sequence
operación
Operation operation
producción
::tensorflow::Output output
row_pooling_sequence
::tensorflow::Output row_pooling_sequence
Funciones publicas
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 )
Funciones estáticas públicas
Determinista
Attrs Deterministic( bool x )
Superposición
Attrs Overlapping( bool x )
Pseudoaleatorio
Attrs PseudoRandom( bool x )
Semilla
Attrs Seed( int64 x )
Semilla2
Attrs Seed2( int64 x )