Calculate CNN Output Size

Calculate CNN Output Size

Convolution output size와 RF(Receptive Field) Size를 계산하는 공식입니다.

\[O=\frac{I-K+2P}{S}+1\]
  • O</b>: Size of output image
  • I</b>: Size of input image
  • K</b>: Size of kernels used in the convolution layer
  • N</b>: Number of kernels
  • S</b>: Stride of the convolution layer
  • P</b>: Padding size

AlexNet 예시

  • AlexNet의 입력 이미지 크기를 227 x 227 x 3이라 하고 첫 번째 convolution layer(conv_1)가 11 x 11 x 3 kernel 96개, stride = 4, padding = 0일 경우 \(O=\frac{227 - 11 + 2 * 0}{4}+1=55\)
  • 따라서 conv_1의 출력 텐서 사이즈는 55 x 55 x 96이며, 3채널(RGB) 이미지이기 때문에 3이 곱해져 총 55 x 55 x 96(kernel개수) x 3이 최종 출력 사이즈가 됨.

Calculate Receptive Field Size

\(InputSize=(OutputSize\ -\ 1)\times KernelStride+KernelSize.\)

  • ReceptiveField : Size of the receptive field can be reversed from the output network size.
  • InputSize : Size of the sense node of the output node.
  • KernelStride : Moving step size of the convolutional kernel.
  • KSize : Size of the convolution kernel between input and output.

같이 보면 좋은 글