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

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가 변경되지 않나요?

24.07.16 18:45 작성

·

105

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

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

2024. 07. 17. 23:10

안녕하세요 🙂

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

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

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

즐공하세요 🙂

0

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

2024. 07. 17. 13:59

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

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

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도 그렇다고 하더라고요.)