Casa > C > Como Calcular O Tamanho Da Saída De Uma Camada Convolucional

Como calcular o tamanho da saída de uma camada convolucional

Em uma rede neural convolucional, há 3 parâmetros principais que precisam ser ajustados para modificar o comportamento de uma camada convolucional. Estes parâmetros são tamanho do filtro, stride e zero padding. O tamanho do mapa de características de saída gerado depende dos 3 parâmetros importantes acima.

Tamanho dos filtros desempenham um papel importante na procura das características chave. É difícil seleccionar um tamanho óptimo do filtro. Tudo depende da aplicação. Um kernel de tamanho maior pode ignorar as características e pode saltar os detalhes essenciais nas imagens, enquanto um kernel de tamanho menor pode fornecer mais informações levando a mais confusão. Assim, há uma necessidade de determinar o tamanho mais adequado do kernel/filtro . Métodos como pirâmides Gaussianas (conjunto de kernels de diferentes tamanhos) podem ser usados para testar a eficiência da extração das características e o tamanho apropriado do kernel é determinado. Adicionado ao tamanho do filtro, é muito importante compreender e decidir o tamanho do stride e do padding.

Stride realmente controla o número de passos que você move o filtro sobre a imagem de entrada. Quando o stride é 1, movemos o filtro um pixel de cada vez. Quando definimos a passada para 2 ou 3 (incomum), movemos o filtro 2 ou 3 pixels de cada vez, dependendo da passada. O valor do stride também controla o tamanho do volume de saída gerado pela camada convolutiva. Quanto maior o stride, menor o tamanho do volume de saída. Por exemplo, se a imagem de entrada for [matemática]7\ vezes7[/math] e a stride for 1, o volume de saída será [matemática]5\ vezes5[/math]. Por outro lado, se aumentarmos o stride para 2, o volume de saída será reduzido para [matemática]3\ vezes3. A stride é normalmente definida de forma que o volume de saída seja um inteiro e não uma fração .

P>Próximo parâmetro importante é o padding zero. Zero padding refere-se ao padding do volume de entrada com zeros ao redor da borda. O padding zero também nos permite controlar o tamanho espacial do volume de saída. Se não adicionarmos nenhum preenchimento zero e usarmos um passo de 1, o tamanho espacial do volume de saída é reduzido. No entanto, com as primeiras camadas convolutivas na rede, queremos preservar o tamanho espacial e garantir que o volume de entrada é igual ao volume de saída. É aqui que o acolchoamento zero é útil. No exemplo [matemática]7\times7 [/math]input image, se usamos um stride de 1 e um padding zero de 1, então o volume de saída também é igual a [matemática]7\times7.[/math]

A fórmula a ser usada para medir o valor do padding para obter o tamanho espacial do volume de entrada e de saída para ser o mesmo com o stride 1 é

[matemática]\frac{K-1}{2}[/math] onde K é o tamanho do filtro.

Finalmente, a fórmula para calcular o tamanho de saída é igual a

[matemática]O=\frac{W-K+2P}{S}+1[/math]

onde O é a altura/comprimento de saída, W é a altura/comprimento de entrada, K é o tamanho do filtro, P é a almofada, e S é a passada.

Por exemplo, se tomarmos S=1, P=2 com W=200 e K=5 e usarmos 40 filtros, então o tamanho de saída será [matemática]200\times200\times40 [/math]usando a fórmula acima.

Por outro lado, se usarmos [matemática]S=1, P=1[/math], então o tamanho de saída será [matemática]198\times198\times40.[/math]

Eu sei que é uma resposta longa, mas só queria esclarecer como o tamanho do filtro, o stride e o padding funcionam para controlar o tamanho de saída em uma camada convolucional.

De Yolande

Como desligar os controlos parentais sem password num Samsung Galaxy S20 :: Como registrar um carro sem título na Geórgia