tensorflow:: ops:: FractionalMaxPool

#include <nn_ops.h>

Realiza una agrupación máxima fraccionaria en la entrada.

Resumen

El max pooling fraccional difiere ligeramente del max pooling regular. En el max pooling regular, se reduce el tamaño de un conjunto de entrada tomando el valor máximo de subsecciones más pequeñas de N x N (generalmente de 2x2) y se intenta reducir el conjunto por un factor de N, donde N es un número entero. El max pooling fraccional, como su nombre indica, implica que la tasa de reducción total N no tiene por qué 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 conformarán los límites de la agrupación.

Primero definimos lo siguiente:

  1. input_row_length: el número de filas del conjunto de entrada
  2. output_row_length: que será menor que la entrada
  3. alfa = longitud_fila_entrada / longitud_fila_salida: nuestra tasa de reducción
  4. K = piso(alfa)
  5. row_pooling_sequence: esta es la lista de resultados de las filas de límite del grupo.

Entonces, row_pooling_sequence debe cumplir:

  1. a[0] = 0: el primer valor de la secuencia es 0
  2. a[end] = input_row_length: el último valor de la secuencia es el tamaño
  3. K <= (a[i+1] - a[i]) <= K+1: todos los intervalos tienen un tamaño de K o K+1.
  4. longitud(secuencia_de_agrupación_de_filas) = ​​longitud_de_fila_de_salida+1

Para obtener más detalles sobre el agrupamiento máximo fraccional, consulte este artículo: Benjamin Graham, Fractional Max-Pooling.

Argumentos:

  • ámbito: Un objeto de ámbito
  • valor: 4-D con forma [batch, height, width, channels] .
  • pooling_ratio: La relación de agrupación para cada dimensión del value actualmente solo admite las dimensiones de fila y columna y debe ser >= 1.0. Por ejemplo, una relación de agrupación válida se ve así: [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 las relaciones de agrupación en las dimensiones de altura y anchura respectivamente.

Atributos opcionales (ver 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 artículo de Benjamin Graham, Fractional Max-Pooling, para conocer la diferencia entre pseudoaleatorio y aleatorio.
  • superpuesto: Cuando se establece en Verdadero, significa que al agrupar, los valores en el límite de las celdas de agrupación adyacentes son utilizados por ambas celdas. Por ejemplo:

index 0 1 2 3 4

value 20 5 16 3 7

Si la secuencia de agrupación es [0, 2, 4], entonces el 16, en el índice 2, se utilizará dos veces. El resultado sería [20, 16] para la agrupación máxima fraccionaria.

  • Determinista: Cuando se establece en Verdadero, se utilizará una región de agrupación fija al iterar sobre un nodo FractionalMaxPool en el grafo de cálculo. Se utiliza principalmente en pruebas unitarias para que FractionalMaxPool sea determinista.
  • Semilla: Si tanto la semilla como la semilla2 tienen un valor distinto de cero, el generador de números aleatorios se inicializa con la semilla proporcionada. De lo contrario, se inicializa con una semilla aleatoria.
  • seed2: Una segunda semilla para evitar colisiones de semillas.

Devoluciones:

  • Output : tensor de salida después del agrupamiento máximo fraccional.
  • 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

Configuradores de atributos opcionales para FractionalMaxPool .

Atributos públicos

secuencia_de_agrupación_de_col

::tensorflow::Output col_pooling_sequence

operación

Operation operation

producción

::tensorflow::Output output

secuencia_de_agrupación_de_filas

::tensorflow::Output row_pooling_sequence

Funciones públicas

FraccionalMaxPool

 FractionalMaxPool(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input value,
  const gtl::ArraySlice< float > & pooling_ratio
)

FraccionalMaxPool

 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
)

Superpuestos

Attrs Overlapping(
  bool x
)

Pseudoaleatorio

Attrs PseudoRandom(
  bool x
)

Semilla

Attrs Seed(
  int64 x
)

Semilla2

Attrs Seed2(
  int64 x
)