flujo tensor:: operaciones:: Grupo máximo fraccional

#include <nn_ops.h>

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

Resumen

La agrupación máxima fraccional 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 N x N subsecciones 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 fraccional, como se podría esperar de la palabra "fraccional", significa que la relación 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:

  1. input_row_length: el número de filas del conjunto de entrada
  2. output_row_length: que será más pequeño que la entrada
  3. alfa = input_row_length / output_row_length: nuestro índice de reducción
  4. K = piso (alfa)
  5. row_pooling_sequence: esta es la lista de resultados de las filas de límites del grupo

Entonces, row_pooling_sequence debería satisfacer:

  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 son de tamaño K o K+1
  4. longitud (secuencia_agrupación_filas) = ​​longitud_fila_salida+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 dimensiones de fila y columna y debe ser >= 1,0. Por ejemplo, una proporción de agrupación válida es [1,0, 1,44, 1,73, 1,0]. El primer y último elemento deben ser 1.0 porque no permitimos la agrupación en dimensiones de lotes y canales. 1,44 y 1,73 son proporciones de agrupación en las dimensiones de alto y ancho respectivamente.

Atributos opcionales (ver Attrs ):

  • pseudo_random: cuando se establece en Verdadero, 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.
  • superposición: cuando se establece en Verdadero, significa que al agrupar, 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], entonces 16, en el índice 2, se usará 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 gráfico de cálculo. Se utiliza principalmente en pruebas unitarias para hacer que FractionalMaxPool sea determinista.
  • semilla: si seed o seed2 se configuran como distintos de cero, el generador de números aleatorios se siembra con la semilla dada. De lo contrario, se siembra con una semilla aleatoria.
  • semilla2: una segunda semilla para evitar la colisión de semillas.

Devoluciones:

  • Salida Output : tensor de salida después de la agrupación máxima fraccionaria.
  • 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:: operaciones:: FractionalMaxPool:: Atributos

Configuradores 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

secuencia_de_agrupación_de_filas

::tensorflow::Output row_pooling_sequence

Funciones públicas

Grupo máximo fraccional

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

Grupo máximo fraccional

 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
)

superpuestas

Attrs Overlapping(
  bool x
)

Pseudoaleatorio

Attrs PseudoRandom(
  bool x
)

Semilla

Attrs Seed(
  int64 x
)

Semilla2

Attrs Seed2(
  int64 x
)