fluxo tensor:: ops:: FracionárioMaxPool

#include <nn_ops.h>

Executa pooling máximo fracionário na entrada.

Resumo

O pool máximo fracionário é um pouco diferente do pool máximo normal. No pooling máximo regular, você reduz o tamanho de um conjunto de entrada pegando o valor máximo das subseções N x N menores do conjunto (geralmente 2x2) e tenta reduzir o conjunto por um fator de N, onde N é um número inteiro. O agrupamento máximo fracionário, como você pode esperar da palavra "fracionário", significa que a taxa de redução geral N não precisa ser um número inteiro.

Os tamanhos das regiões de agrupamento são gerados aleatoriamente, mas são bastante uniformes. Por exemplo, vejamos a dimensão da altura e as restrições na lista de linhas que serão limites do pool.

Primeiro definimos o seguinte:

  1. input_row_length: o número de linhas do conjunto de entrada
  2. output_row_length: que será menor que a entrada
  3. alfa = input_row_length / output_row_length: nossa taxa de redução
  4. K = piso (alfa)
  5. row_pooling_sequence: esta é a lista de resultados das linhas dos limites do pool

Então, row_pooling_sequence deve satisfazer:

  1. a[0] = 0 : o primeiro valor da sequência é 0
  2. a[end] = input_row_length: o último valor da sequência é o tamanho
  3. K <= (a[i+1] - a[i]) <= K+1 : todos os intervalos são de tamanho K ou K+1
  4. comprimento(row_pooling_sequence) = saída_row_length+1

Para obter mais detalhes sobre pooling máximo fracionário, consulte este artigo: Benjamin Graham, Fractional Max-Pooling

Argumentos:

  • escopo: um objeto Escopo
  • valor: 4-D com forma [batch, height, width, channels] .
  • pooling_ratio: taxa de agrupamento para cada dimensão de value , atualmente suporta apenas dimensões de linha e coluna e deve ser >= 1,0. Por exemplo, uma proporção de agrupamento válida se parece com [1,0, 1,44, 1,73, 1,0]. O primeiro e o último elementos devem ser 1,0 porque não permitimos agrupamento em dimensões de lote e canais. 1,44 e 1,73 são a proporção de agrupamento nas dimensões de altura e largura, respectivamente.

Atributos opcionais (veja Attrs ):

  • pseudo_random: Quando definido como True, gera a sequência de pooling de forma pseudoaleatória, caso contrário, de forma aleatória. Verifique o artigo Benjamin Graham, Fractional Max-Pooling para ver a diferença entre pseudoaleatório e aleatório.
  • sobreposição: quando definido como True, significa que, ao agrupar, os valores no limite das células adjacentes do agrupamento são usados ​​por ambas as células. Por exemplo:

index 0 1 2 3 4

value 20 5 16 3 7

Se a sequência de agrupamento for [0, 2, 4], então 16, no índice 2, será usado duas vezes. O resultado seria [20, 16] para pool máximo fracionário.

  • determinístico: quando definido como True, uma região de pooling fixa será usada ao iterar sobre um nó FractionalMaxPool no gráfico de computação. Usado principalmente em testes de unidade para tornar FractionalMaxPool determinístico.
  • seed: Se seed ou seed2 forem definidos como diferentes de zero, o gerador de números aleatórios será propagado pela semente fornecida. Caso contrário, é semeado por uma semente aleatória.
  • seed2: Uma segunda semente para evitar colisão de sementes.

Retorna:

  • Saída Output : tensor de saída após pooling máximo fracionário.
  • Output row_pooling_sequence: sequência de pooling de linhas, necessária para calcular o gradiente.
  • Output col_pooling_sequence: sequência de agrupamento de colunas, necessária para calcular o gradiente.

Construtores e Destruidores

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

Funções estáticas públicas

Deterministic (bool x)
Overlapping (bool x)
PseudoRandom (bool x)
Seed (int64 x)
Seed2 (int64 x)

Estruturas

tensorflow:: ops:: FractionalMaxPool:: Attrs

Configuradores de atributos opcionais para FractionalMaxPool .

Atributos públicos

col_pooling_sequence

::tensorflow::Output col_pooling_sequence

Operação

Operation operation

saída

::tensorflow::Output output

row_pooling_sequence

::tensorflow::Output row_pooling_sequence

Funções públicas

FracionárioMaxPool

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

FracionárioMaxPool

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

Funções estáticas públicas

Determinístico

Attrs Deterministic(
  bool x
)

Sobreposição

Attrs Overlapping(
  bool x
)

Pseudoaleatório

Attrs PseudoRandom(
  bool x
)

Semente

Attrs Seed(
  int64 x
)

Semente2

Attrs Seed2(
  int64 x
)