inflearn logo
강의

Course

Instructor

[PyTorch] Deep Learning Leading to Practical AI - From Basics to Paper Implementation

이미지분류-합성곱신경망(CNN) 피쳐맵 질문입니다.

Resolved

581

0987someday

3 asked

1

안녕하세요. 강의 잘 듣고있습니다.

질문은 여기서 16*5*5가 5*5피쳐맵 16개라는데

5*5피쳐맵이 갑자기 어디서 나온건가요?

앞의 conv2d에서의 필터크기가 5*5여서 5*5피쳐맵이 생성된건가요?

python 머신러닝 딥러닝 인공신경망 pytorch

Answer 1

0

dlbro

안녕하세요.

 

좋은 질문입니다 :)

fc1 이 전 풀링 레이어 pool2까지 거친 피쳐맵의 크기가 16x5x5 입니다. 즉, 5x5 피쳐맵이 16개 있다는 의미이고 이 것을 일렬로 폈기 때문에 fc1의 입력 노드가 16x5x5개 됩니다! 즉, 모델을 구축하기 위해서 마지막 피쳐맵의 크기를 미리 알고 계셔야 합니다.

 

감사합니다.

1

0987someday

답변감사합니다! 그럼 선생님께서는 아래와 같이 피쳐맵의 크기를 계산하는 공식을 매번 적용하시면서 코드를 작성하셨던 걸까요?? 공식을 일일히 적용하지 않고 계산하는 함수?또는 코드가 있는지도 궁금합니다!

OutputHeight=OH=(H+2P−FH)S+1O

OutputWeight=OW=(W+2P−FW)S+1

1

dlbro

공식 사용하셔도 됩니다! 다만 모델 구조와 이미지 크기에 따라 공식의 분수 계산 부분에서 나누어 떨어지지 않는 경우가 여러 번 나오게 되면 최종 값이 맞지 않아 오류가 발생할 가능성이 있습니다. 그래서 이 부분을 신경 쓰고 싶지 않으면 일렬로 피는 대신에 각 채널의 피쳐맵 평균을 사용하는 global average pooling도 많이 사용합니다. 즉, 이 경우에는 어떠한 이미지 사이즈가 들어와도 무조건 fc1의 입력 노드가 직전 채널 수가 됩니다!! (즉, fc1=nn.Linear(16, 120))

1

0987someday

와 꿀팁 감사합니다!!!! 좋은 밤 되세요 :)

수업자료 제공 부탁드립니다.

0

93

2

코드가 어디에 있는지 모르겠습니다.

0

93

2

논문 구현

0

183

2

overfitting이 나는 이유가 궁금합니다.

1

169

2

분류 성능이 잘 안 나오는 이유

0

217

1

AutoEncoder 차원 질문

1

250

2

사전 학습 모델에서의 layer 변경에 대한 질문

1

218

1

7강 폴더 만들

0

259

1

4-3강 cross-validation에서의 best model 선정 기준

0

446

1

regression 문제에 대한 결과 시각화

0

213

1

Loss function 관련하여 질문드립니다.

0

953

1

early stopping 코드 문의

0

325

1

예측 그래프

0

353

1

데이터 불균형

1

364

1

8강 전이 학습 질문

0

395

2

data의 gpu처리 질문

0

240

1

nn.Linear(1024, 10) 관련 질문드립니다.

0

286

1

학습과 평가시 Loss 함수가 다른 이유

0

249

1

전처리 관련해서 질문 있습니다.

0

224

1

데이터 엔지니어의 역량을 기르려면 어떻게 해야할까요?

0

932

2

역전파 내용 중 미분 관련 질문 드립니다

1

278

1

8강 전이학습에서 kernel size 관련 질문 드립니다.

1

952

1

14강 데이터 불균형 RandomRotation

1

479

1

3장 데이터 불러오기에서 LinearTensor를 정의하는 이유가 궁금합니다.

1

321

1