AI/Deep Learning

[Deep Learning] CNN 파라미터 수 계산

byunghyun23 2023. 6. 7. 17:45

CNN기반의 네트워크를 다음과 같이 구성했다고 가정해 봅시다.

 

summary()를 이용하여 모델의 파라미터 수를 확인할 수 있는데, 여기서 파라미터의 수 계산 공식은 다음과 같습니다.

conv param size = filter size * input channel * output channel + bias

 

위 summary() 내용을 기준으로 파라미터 수를 계산해 보겠습니다.

 

첫 번째 conv2d 레이어의 파라미터는 어떻게 416이 될까요?

먼저 conv2d의 필터 사이즈는 5 * 5입니다. 그리고 input_shape는 (28, 28, 1)로, 입력 채널 수는 1이며 출력 채널 수는 16입니다. 또한 바이어스는 출력 채널 수마다 1개씩 증가하므로 16입니다.

따라서 conv2d의 필터 사이즈는 (5 * 5) * 1 * 16 + 16 = 416 입니다.

 

마찬가지로 노란색 테두리에 있는 conv2d_1의 파라미터 수는 다음과 같이 계산할 수 있습니다.

filter size = 5 * 5

input channel = 16 (max_pooling2d의 출력)

output channel = 32

bias = 32

계산하면, (5 * 5) * 16 * 32 + 32 = 12,832 입니다.

 

참고로 TensorFlow CNN을 이용한 네트워크 설계에서 입력과 출력 계산이 별도로 필요하지 않지만,

PyTorch는 직접 설정할 일이 많기 때문에 파라미터 수 계산 방법을 꼭 숙지하시는 것이 좋습니다.