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는 직접 설정할 일이 많기 때문에 파라미터 수 계산 방법을 꼭 숙지하시는 것이 좋습니다.
'AI > Deep Learning' 카테고리의 다른 글
[Deep Learning] 오토 인코더 (Auto-Encoder) (0) | 2023.06.08 |
---|---|
[Deep Learning] RNN (Recurrent Neural Networks) (0) | 2023.06.08 |
[Deep Learning] CNN (Convolutional Neural Networks) (0) | 2023.06.07 |
[Deep Learning] 활성화 함수 (Activation Function) (0) | 2023.06.02 |
[Deep Learning] 퍼셉트론(Perceptron)과 뉴럴 네트워크(Neural Networks) (0) | 2023.06.02 |