Casa > O > O Que Significa O 'Mesmo' Parâmetro De Preenchimento Em Convolução No Tensorflow?

O que significa o 'mesmo' parâmetro de preenchimento em convolução no TensorFlow?

O mesmo padding significa que o tamanho dos mapas de características de saída são os mesmos que os mapas de características de entrada (sob a suposição de [matemática]stride=1[/math]). Por exemplo, se a entrada é [matemática]n_{in}[/math] canais com mapas de características de tamanho [matemática]28\ vezes 28[/math], então na saída você espera obter [matemática]n_{out}[/math] mapas de características de cada tamanho [matemática]28\ vezes 28[/math] também.

Agora como conseguir isso, é uma questão de configurar o operador de convolução. Se um kernel (filtro) de tamanho [matemática]k\ vezes k[/math] é usado, então o tamanho do padding [matemática]p[/math] deve ser escolhido para ser [matemática]p=\frac{k-1}{2}[/math].

Para ver de onde isso vem, considere a figura esquemática a seguir, com um mapa de características 2D de entrada de tamanho [matemática]10\ vezes 10[/math] necessidades e um kernel de tamanho [matemática]3\ vezes 3[/math].

Para fazer os mapas de características de saída do mesmo tamanho, precisamos calcular a operação de convolução da matriz do kernel com os patches locais dos mapas de características de entrada [matemática]10[/math] vezes em cada direção. Intuitivamente, para cada célula da matriz de entrada deve ser colocada no centro do kernel. Então, a partir da primeira célula no canto superior esquerdo, precisamos preencher essa célula com zeros suficientes para que ela seja o centro do kernel. E isso significa que precisamos preencher a matriz com um zeros em cada direção. Se o kernel fosse de tamanho [matemática]5\ vezes 5[/math] então, precisaríamos zeros.

main-qimg-9e3419cfcd8535fb289bb1b710920d2f main-qimg-bdfb9cffbabddca398207120de1618d1.webp

Outra maneira de verificar isso, é usar a relação entre os tamanhos de entrada e saída para o tamanho do kernel [matemática]k[/math] e padding [matemática]p[/math] (como observado em https://arxiv.org/pdf/1603.07285.pdf):

[math]o = (i-k) + 2p + 1[/math]

Então, quando [matemática]i=10[/math], [matemática]k=3[/math], [matemática]p=1[/math] obtemos tamanho de saída [matemática]o=10-3+2\ vezes 1 + 1 = 10[/math]

e quando [matemática]i=10[/math], [matemática]k=5[/math], [matemática]p=2[/math] obtemos tamanho de saída [matemática]o=10-5+2\ vezes 2 + 1 = 10[/math]

p>Embora eu tenha simplificado considerando [matemática]stride=1[/math], e assumindo que o tamanho do acolchoamento é um número par, você também pode achar este link útil para entender o mesmo acolchoamento: caffe2/caffe2

De Jewel Chene

Como é viver em Charlotte, NC? :: Quais são os melhores meses para voar com peixes no Colorado?