더북(TheBook)

MaxPool2d 계층에서의 출력 크기 구하는 공식

출력 크기 = IF/F

IF: 입력 필터의 크기(input_filter_size, 또한 바로 앞의 Conv2d의 출력 크기이기도 합니다)

F: 커널 크기(kernel_size)

 

예를 들어 첫 번째 MaxPool2d 계층은 다음과 같습니다.

nn.MaxPool2d(kernel_size=2, stride=2)

따라서 출력 크기는 다음과 같이 계산할 수 있습니다.

784 / 2 = 392

(784는 첫 번째 Conv2d에서 계산한 결과입니다)

계산 결과를 적용하면 출력의 형태는 [32, 392, 392]가 됩니다. 그리고 가장 앞의 32는 바로 앞 Conv2d 계층의 out_channels입니다.

out_features: 출력 데이터의 크기를 의미합니다.

⑥ 합성곱층에서 완전연결층으로 변경되기 때문에 데이터의 형태를 1차원으로 바꾸어 줍니다.

이때 out.size(0)은 결국 64*6*6을 의미합니다. 따라서 (64*6*6, ?) 크기의 텐서로 변경하겠다는 의미입니다. out.view(out.size(0), -1)에서 ‘-1’은 행(row)의 수는 정확히 알고 있지만 열(column)의 수를 알지 못할 때 사용합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.