border_mode para camadas convolucionais em keras

7

Keras possui dois border_mode para convolution2D, iguais e válidos. Alguém poderia explicar o que "igual" faz ou apontar alguma documentação? Não encontrei nenhum documento na rede (exceto as pessoas que pedem que ele seja implementado no theano também).

do utilizador
fonte

Respostas:

12

Com o modo de borda "válido", você obtém uma saída menor que a entrada, porque a convolução é calculada apenas onde a entrada e o filtro se sobrepõem completamente.

Com o modo de borda "igual", você obtém uma saída com o tamanho "igual" da entrada. Isso significa que o filtro deve sair dos limites da entrada com "tamanho do filtro / 2" - a área fora da entrada normalmente é preenchida com zeros.

Observe que algumas bibliotecas também suportam o modo de borda "cheio", onde o filtro vai ainda mais além dos limites da entrada - até "tamanho do filtro - 1". Isso resulta em uma forma de saída maior que a entrada.

Há uma breve explicação na documentação do convolve do numpy:

http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.convolve.html

stmax
fonte
Eu sei que com válido você obtém uma saída menor. Esse é o tipo de convolução a que estou acostumado, onde você obtém uma saída menor, pois o filtro se move pela imagem original. Você está dizendo que com "igual" você vai da imagem original para obter o mesmo tamanho. Quais são as entradas para esses pontos, então, assumimos que eles são zero?
usuário
11
Sim, veja acima - "a área fora da entrada é normalmente preenchida com zeros". Algumas bibliotecas permitem especificar qual valor deve ser usado para preenchimento. Keras usa zeros.
Stmax 19/05