tensorflow::ops::FractionalMaxPool

#include <nn_ops.h>

Executa o agrupamento máximo fracionário na entrada.

Resumo

O pooling máximo fracionário difere ligeiramente do pooling máximo regular. No pooling máximo regular, o tamanho de um conjunto de entrada é reduzido selecionando o valor máximo de subseções menores de N x N dimensões (geralmente 2x2) e tentando reduzir o conjunto por um fator de N, onde N é um número inteiro. O pooling máximo fracionário, como o próprio nome indica, 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, vamos analisar a dimensão da altura e as restrições na lista de linhas que serão os limites do agrupamento.

Primeiramente, 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 = comprimento_da_linha_de_entrada / comprimento_da_linha_de_saída: nossa taxa de redução
  4. K = piso(alfa)
  5. row_pooling_sequence: esta é a lista resultante das linhas de limite 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 têm tamanho K ou K+1
  4. comprimento(sequência_de_agrupamento_de_linhas) = ​​comprimento_da_linha_de_saída+1

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

Argumentos:

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

Atributos opcionais (ver Attrs ):

  • pseudo_random: Quando definido como True, gera a sequência de pooling de forma pseudoaleatória; caso contrário, de forma aleatória. Consulte o artigo de Benjamin Graham, Fractional Max-Pooling, para entender a diferença entre pseudorandom e random.
  • sobreposição: Quando definido como Verdadeiro, significa que, ao combinar os dados, os valores no limite das células adjacentes 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 pooling for [0, 2, 4], então 16, no índice 2, será usado duas vezes. O resultado seria [20, 16] para o pooling 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 grafo de computação. Usado principalmente em testes unitários para tornar o FractionalMaxPool determinístico.
  • Semente: Se `seed` ou `seed2` forem definidos como diferentes de zero, o gerador de números aleatórios será inicializado com a semente fornecida. Caso contrário, será inicializado com uma semente aleatória.
  • seed2: Uma segunda semente para evitar colisão de sementes.

Devoluções:

  • Output : tensor de saída após o pooling máximo fracionário.
  • Output row_pooling_sequence: sequência de agrupamento 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 Destrutores

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

Definidores de atributos opcionais para FractionalMaxPool .

Atributos públicos

sequência_de_agrupamento_col

::tensorflow::Output col_pooling_sequence

operação

Operation operation

saída

::tensorflow::Output output

sequência de agrupamento de linhas

::tensorflow::Output row_pooling_sequence

Funções públicas

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
)

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
)