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:
- input_row_length: o número de linhas do conjunto de entrada
- output_row_length: que será menor que a entrada
- alfa = comprimento_da_linha_de_entrada / comprimento_da_linha_de_saída: nossa taxa de redução
- K = piso(alfa)
- row_pooling_sequence: esta é a lista resultante das linhas de limite do pool.
Então, row_pooling_sequence deve satisfazer:
- a[0] = 0: o primeiro valor da sequência é 0
- a[end] = input_row_length: o último valor da sequência é o tamanho
- K <= (a[i+1] - a[i]) <= K+1 : todos os intervalos têm tamanho K ou K+1
- 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. -
Outputrow_pooling_sequence: sequência de agrupamento de linhas, necessária para calcular o gradiente. -
Outputcol_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 )