inflearn logo
강의

Course

Instructor

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

Digit Generation - Autoencoder

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

Resolved

287

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

95

2

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

0

93

2

논문 구현

0

184

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

447

1

regression 문제에 대한 결과 시각화

0

213

1

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

0

954

1

early stopping 코드 문의

0

325

1

예측 그래프

0

353

1

데이터 불균형

1

364

1

8강 전이 학습 질문

0

395

2

data의 gpu처리 질문

0

240

1

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

0

249

1

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

0

224

1

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

0

933

2

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

1

282

1

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

1

956

1

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

1

585

1

14강 데이터 불균형 RandomRotation

1

481

1

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

1

324

1