딥러닝 모델을 설계하거나 논문을 읽다 보면 자주 등장하는 지표가 바로 "파라미터 수(parameter count)"입니다. 하지만 이 수치가 무엇을 의미하는지, 또는 어떻게 계산되는지 헷갈리는 분들이 많습니다.
이 글에서는 Linear(선형) 레이어와 Convolution(합성곱) 레이어를 중심으로, weight와 bias가 어떻게 구성되고 파라미터 수가 어떻게 계산되는지 직관적인 예제와 코드로 쉽게 설명해드릴게요.
딥러닝 모델의 파라미터 수란?
각 레이어의 weight + bias를 모두 합한 값입니다.
이 파라미터들은 학습을 통해 조정되며, 모델이 데이터를 이해하고 일반화하는 능력과 직접적으로 관련되어 있습니다.
총 파라미터 수 = (입력 노드 수 × 출력 노드 수) + 출력 노드 수
in_features
) = 4out_features
) = 3x = [x1, x2, x3, x4]
y = [y1, y2, y3]
import torch
import torch.nn as nn
layer = nn.Linear(4, 3) # in_features=4, out_features=3
print("weight shape:", layer.weight.shape) # torch.Size([3, 4])
print("bias shape:", layer.bias.shape) # torch.Size([3])
출력 결과:
weight shape: torch.Size([3, 4])
bias shape: torch.Size([3])
총 파라미터 수 = (커널 너비 × 커널 높이 × 입력 채널 수 × 출력 채널 수) + 출력 채널 수
→ weight shape: (16, 3, 3, 3)
→ weight 개수 = 16 × 3 × 3 × 3 = 432
→ bias 개수 = 16
▶️ 총 파라미터 수 = 432 + 16 = 448개
레이어 유형 | Weight 수 계산 | Bias 수 계산 |
---|---|---|
Linear Layer | in_features × out_features | out_features |
Convolution Layer | kernel_h × kernel_w × in_ch × out_ch | out_channels |
▶️ 총 파라미터 수 = 모든 weight + bias
딥러닝 모델의 성능이나 복잡도를 이해하려면 "파라미터 수"의 개념은 반드시 짚고 넘어가야 합니다.
이번 글에서 설명한 weight와 bias의 차이, 레이어별 파라미터 계산 공식, 그리고 직접 코드로 확인하는 방법을 숙지하면, 모델 설계와 디버깅 시 더 깊은 통찰을 가질 수 있어요.