inflearn logo
강의

Course

Instructor

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

Digit Generation - Autoencoder

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

Resolved

318

k3y3j39254

5 asked

0

안녕하세요! 수업중 궁금한 부분이 있어 문의 드립니다.

 

        self.encoder = nn.Sequential(
                        nn.Conv2d(1, k, 3, stride=2), # 흑백 이미지로 체널이 1개, 나머지는 임의로 설정
                        nn.ReLU(),
                        nn.Conv2d(k, 2*k, 3, stride=2),
                        nn.ReLU(),
                        nn.Conv2d(2*k, 4*k, 3, stride=1),
                        nn.ReLU(),
                        Flatten(),
                        nn.Linear(1024, 10),
                        nn.ReLU()

 

  1. nn.Linear(1024, 10) 이 부분에서, MNIST의 경우 미리 계산하면 1024가 나온다고 말씀 주셨는데요, 어떻게 계산해야 하는건지 알 수 있을까요?

 

  1. 또한, 이 수치를 코드 작성자가 꼭 계산해서 넣어줘야 하는지도 궁금합니다! 크기(1024)를 코드로 출력해서 확인해 보는 방법이나, 저 부분에 1024 크기가 계산되어 들어가도록 코드를 작성할 수도 있을까요?

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

Answer 1

0

dlbro

안녕하세요.

좋은 질문입니다 :)

  1. 우리가 각 conv 레이어 당 출력 피쳐맵의 크기를 계산할 수 있기 때문에 쭉 계산해보시면 1024라는 값을 얻으실 수 있습니다. 그런데 당연히 하나하나 계산하실 필요는 없고 코딩하실 때에서 마지막 linear를 지우시고 size를 출력해보시면 1024를 얻게 되고 그 숫자를 linear에 넣어주시면 됩니다.

 

  1. conv레이어 마지막에서 나온 피쳐맵을 펴서 fc로 보내는 세팅에서는 그 값을 작성자가 미리 정해주셔야 합니다. 추가로 데이터 전처리에서 resize를 적용하여 동일한 이미지 크기가 처리 되도록 한다면 한 번 세팅한 값은 이미지 크기에 따라 바뀌지 않기 때문에 그대로 사용하실 수 있구요. 또 다른 방법으로는 flatten 대신 global average pooling을 사용하는 방법이 있습니다. gap는 각 채널당 평균값을 계산하는 방법이라서 이 문제에 경우 이미지 크기에 관계없이 항상 4*k(마지막 conv레이어의 채널 수)의 노드 값을 얻으실 수 있습니다.

     


    감사합니다.

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

0

143

2

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

0

138

2

논문 구현

0

233

2

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

1

207

2

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

0

245

1

AutoEncoder 차원 질문

1

284

2

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

1

244

1

7강 폴더 만들

0

289

1

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

0

483

1

regression 문제에 대한 결과 시각화

0

240

1

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

0

997

1

early stopping 코드 문의

0

355

1

예측 그래프

0

390

1

데이터 불균형

1

385

1

8강 전이 학습 질문

0

432

2

data의 gpu처리 질문

0

267

1

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

0

278

1

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

0

250

1

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

0

978

2

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

1

295

1

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

1

982

1

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

1

611

1

14강 데이터 불균형 RandomRotation

1

496

1

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

1

346

1