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는 직접 설정할 일이 많기 때문에 파라미터 수 계산 방법을 꼭 숙지하시는 것이 좋습니다.