ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CNN 파라미터 수 계산 방법
    딥러닝/기본 연산들 2022. 6. 4. 14:43

    CNN 아키텍처의 컨볼루션 층 파라미터 개수 세는 법을 알아보겠습니다. 컨볼루션 층은 스트라이드가 1 또는 2일 때, 커널 사이즈가 1x1, 3x3, 5x5 일때로 또 다시 구분합니다.

     

    스트라이드=1, 패딩=1, 커널 사이즈=3x3

     

    배치 차원을 뺀 입력 차원 수는 (224, 224, 3)이고 3x컨볼루션을 쓰며 출력 차원 수는 (224, 224, 8)이라고 생각해 봅시다. 컨볼루션 연산을 통해 XY 평면 차원수는 그대로 유지하였고 채널 차원 수만 3에서 8로 증가했습니다.

     

    3x3x3 커널 8개

    이때 파라미터 수를 계산해 봅시다. 3x3x3 인 커널이 8개 존재하는 것이므로 3x3x3x8이 됩니다.

     

    트라이드=2, 패딩=2 , 커널 사이즈 5x5

    배치 차원을 뺀 입력 차원 수는 (224, 224, 8)이고 3x컨볼루션을 쓰며 출력 차원 수는 (112, 112, 16)이라고 생각해 봅시다. 패딩 2를 적용하면 동서남북 +2 엘리먼트가 되어 가로 X는 X+4가 되고 Y는 Y+4가 됩니다.

     

    스트라이드 2라고 한다면 컨볼루션 연산 후에 XY 평면 차원  수가 변하지 않게 됩니다.

     

    커널 5x5, 패딩=2, 스트라이드=1

     

    스트라이드 2를 적용하면 컨볼루션 연산을 통해 XY 평면 차원수는 반으로 줄어든 (112, 112)가 되었고 채널 차원 수는 8에서 16으로 증가했습니다.

     

    5x5x8 컨볼루션 16개

     

    이때 파라미터 수를 계산해 봅시다. 3x3x8 인 커널이 16개 존재하는 것이므로 3x3x8x16이 됩니다. 스트라이드는 단순히 커널을 적용할 때의 간격을 의미하는 것으로 그것이 1이거나 2이거나 커널 자체는 불변입니다. 그래서 파라미터 수에 영향을 주지 않습니다.

     

    스트라이드 1, 커널 사이즈 1x1

    1x1x16 컨볼루션 32개

    배치 차원을 뺀 입력 차원 수는 (112, 112, 16)이고 1x컨볼루션을 쓰며 출력 차원 수는 (112, 112, 32)이라고 생각해 봅시다. 이때의 컨볼루션은 채널 차원 수를 늘이기 위해 사용되었습니다. 컨볼루션 연산을 통해 XY 평면 차원수는 변함이 없고 채널 차원 수는 16에서 32로 증가했습니다.

     

    이때 파라미터 수를 계산해 봅시다. 1x1x16인 커널이 32개 있으므로 1x1x16x32가 됩니다.

    댓글

Designed by Tistory.