에서 알렉스 Krizhevsky, 등. 심층 컨볼 루션 신경망을 사용한 이미지 넷 분류 는 각 계층의 뉴런 수를 열거합니다 (아래 다이어그램 참조).
네트워크의 입력은 150,528 차원이며 네트워크의 나머지 계층에있는 뉴런의 수는 253,440–186,624–64,896–64,896–43,264–4096–4096–1000으로 제공됩니다.

3D 뷰
첫 번째 이후의 모든 층에 대한 뉴런의 수는 분명합니다. 뉴런을 계산하는 간단한 방법 중 하나는 해당 레이어의 3 차원을 단순히 곱하는 것입니다 ( planes X width X height).
- 레이어 2 :
27x27x128 * 2 = 186,624 - 레이어 3 :
13x13x192 * 2 = 64,896 - 기타
그러나 첫 번째 레이어를 보면 :
- 층 1 :
55x55x48 * 2 = 290400
이는 것을 알 수 없습니다 253,440 로 종이에 지정된!
출력 크기 계산
컨벌루션의 출력 텐서를 계산하는 다른 방법은 다음과 같습니다.
입력 화상은 3D 텐서 인 경우
nInputPlane x height x width, 출력 영상 사이즈 것이다nOutputPlane x owidth x oheight곳
owidth = (width - kW) / dW + 1
oheight = (height - kH) / dH + 1.
( 토치 SpatialConvolution 문서에서 )
입력 이미지는 다음과 같습니다
nInputPlane = 3height = 224width = 224
컨볼 루션 레이어는 다음과 같습니다.
nOutputPlane = 96kW = 11kH = 11dW = 4dW = 4
(예 : 커널 크기 11, 보폭 4)
우리는 그 숫자를 꽂습니다.
owidth = (224 - 11) / 4 + 1 = 54
oheight = (224 - 11) / 4 + 1 = 54
따라서 55x55용지와 일치하는 데 필요한 치수 중 하나가 부족 합니다. 패딩 일 수 있습니다 (그러나 cuda-convnet2모델은 명시 적으로 패딩을 0으로 설정합니다)
54크기를 측정하면 96x54x54 = 279,936뉴런 이 생깁니다 . 여전히 너무 많습니다.
그래서 내 질문은 이것입니다 :
첫 번째 컨볼 루션 레이어에 대해 어떻게 253,440 개의 뉴런을 얻습니까? 내가 무엇을 놓치고 있습니까?