인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

메시림님의 프로필 이미지

작성한 질문수

[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지

주가 예측 - LSTM과 GRU

LSTM fc 코드 관련 문의

작성

·

270

0

안녕하세요.

LSTM 모델 구축할 때,

self.fc = nn.Linear(hidden_size*sequence_length,1) 이부분에서 hidden_szie와 sequence_length를 곱해준 이유가 무엇인지 궁금합니다.

답변 1

0

딥러닝호형님의 프로필 이미지
딥러닝호형
지식공유자

안녕하세요.

lstm은 각 시퀀스 마다 아웃풋을 뽑아내게 됩니다.

여기서 마지막 시퀀스의 결과만 사용할 지 (n to 1) 전체를 사용할지 (n to n)를 정하시면 됩니다.

우리 코드에서는 전체 아웃풋을 concatenate하여 사용하게 설계되어 있습니다.

즉, (hidden_size, sequence_length)의 크기를 가진 피쳐가 나오게 됩니다.

그 다음 hidden_size*sequence_length의 크기인 벡터를 reshape을 이용하여 만들어서 fc에 넣게 됩니다.

각 라인마다 torch.Size를 확인해 보세요 :)

out, _ = self.lstm(x, (h0, c0)) # output, (hn, cn): torch.Size([20, 5, 8])

out = out.reshape(out.shape[0], -1) :torch.Size([20, 40])

out = self.fc(out): torch.Size([20, 1])

감사합니다.