인프런 커뮤니티 질문&답변

textbook94님의 프로필 이미지
textbook94

작성한 질문수

설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)

[AI HW 6장 2부] CNN Paper Review (VGGNet, GoogLeNet, ResNet, 마무리)

6장2부 15분 12초 왜 feature map size가 변경되지 않나요?

작성

·

116

1

안녕하세요. 맛비님 강의영상 잘보고 있습니다.

다름이 아니라 영상도중에 이해가 되질 않아서 글 올립니다.

  1. 질문 챕터 : 15:12 쯤에 Inception Network 설명하는 부분입니다.

  2. 질문 내용 : 1x1 Conv 연산으로 각각의 channel 갯수가 각각 64, 96, 16으로 줄어드는 것 까지는 이해하였습니다.

    근데 기본적으로 3x3 5x5 conv 연산을 하거나 pooling (3x3 max)연산을 진행하게 되면 feature map size가 padding을 하지 않는 이상 줄어들어야 하는게 맞는데, 왜 28x28로 고정이 되는지 알고싶습니다.

    만약 3x3연산은 padding통해 output feature map size가 28x28이 되었다고 한다면, 5x5도 padding인가요? 만약 padding이라면 상하좌우 2칸씩 늘려야하는데, zero padding을 사용하는건가요?

답변 2

0

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

안녕하세요 🙂

너무 훌륭하게 찾으셨습니다.

네 찾아보신대로, padding 이 들어가야 NxN Conv 이후 2D domain size 를 유지할 수 있습니다.

padding 에서 zero 말고도 다양한 padding 기법이 있지만, padding 이라는게 결국 boundary 영역처리라서, 꼭 어떤 padding 이 가장 좋다 말하기 그래요 ㅎ

즐공하세요 🙂

0

textbook94님의 프로필 이미지
textbook94
질문자

제가 좀 더 찾아본 내용을 같이 올려보려고 합니다.

워낙 유명하다보니 구글에서 다음과 같은 자료가 있더라고요.

https://teddylee777.github.io/pytorch/inception-module/

InceptionModule 클래스(class)정의문에서 padding='same' 이 확인할 수 있었고, same padding을 통해 3x3, 5x5 Conv2D 연산의 output feature map size가 input size와 동일하게 나온걸 확인하였습니다. ( max 3x3 pooling도 padding 사용한것으로 보입니다. )

https://discuss.pytorch.org/t/padding-1-and-same-give-different-result/163584 (“same” which means add 0 as padding and make the output size the same as input size)

padding종류도 여러가지라서 찾아봤는데, pytorch에서 same padding은 zero padding을 기반하여 진행하는것으로 파악되어서 zero인거 같습니다. (chatgpt도 그렇다고 하더라고요.)

textbook94님의 프로필 이미지
textbook94

작성한 질문수

질문하기