Em Alex Krizhevsky, et al. Na classificação Imagenet com redes neurais convolucionais profundas, eles enumeram o número de neurônios em cada camada (veja o diagrama abaixo).
A entrada da rede é 150.528-dimensional, e o número de neurônios nas camadas restantes da rede é dado por 253.440-186.624-64.896-64.896–43.264– 4096–4096-1000.

Uma visualização em 3D
O número de neurônios para todas as camadas após a primeira é claro. Uma maneira simples de calcular os neurônios é simplesmente multiplicar as três dimensões dessa camada ( planes X width X height):
- Camada 2:
27x27x128 * 2 = 186,624 - Camada 3:
13x13x192 * 2 = 64,896 - etc.
No entanto, olhando para a primeira camada:
- Camada 1:
55x55x48 * 2 = 290400
Observe que isso não é o 253,440especificado no documento!
Calcular tamanho da saída
A outra maneira de calcular o tensor de saída de uma convolução é:
Se a imagem de entrada for um tensor 3D
nInputPlane x height x width, o tamanho da imagem de saída seránOutputPlane x owidth x oheightonde
owidth = (width - kW) / dW + 1
oheight = (height - kH) / dH + 1.
(da documentação da Torch SpatialConvolution )
A imagem de entrada é:
nInputPlane = 3height = 224width = 224
E a camada de convolução é:
nOutputPlane = 96kW = 11kH = 11dW = 4dW = 4
(por exemplo 11, tamanho do kernel , passo 4)
Conectando esses números, obtemos:
owidth = (224 - 11) / 4 + 1 = 54
oheight = (224 - 11) / 4 + 1 = 54
Portanto, estamos um pouco abaixo das 55x55dimensões necessárias para corresponder ao papel. Eles podem estar preenchendo (mas o cuda-convnet2modelo define explicitamente o preenchimento como 0)
Se tomarmos as 54dimensões de tamanho, obteremos 96x54x54 = 279,936neurônios - ainda serão muitos.
Então, minha pergunta é esta:
Como eles conseguem 253.440 neurônios para a primeira camada convolucional? o que estou perdendo?