inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part3]

RNN 과 LSTM 구현해보기2 (MNIST 데이터셋)

out = out[:, -1] 코드에 관한 질문입니다

519

작성자 없음

작성한 질문수 0

0

강의 8:30 부분에서 나오는

out = out[:, -1] 코드에 관한 질문입니다.

 

우선, 다음과 같이 예시를 작성해 보았습니다

이렇게 test_data를 만들고,

 

여기에 test_data[:, -1] 을 적용해 보았는데요,

shape이 (3, 2, 4) 에서 (3, 4) 로 바뀌는 것은 확인하였지만,

이 코드가 '왜 사용되었는지' 에 관한 궁금증이 생겼습니다.

 

단지 shape을 맞춰주기 위해서 전체 데이터 중 일부를 slicing 하는 것이라면,

view 메소드를 사용해서 shape을 맞춰주는 방법도 있을텐데요,

전체 데이터 중에서 일부를 slicing 하는 방식으로 이렇게 코드를 작성한 이유가 무엇인지 궁금합니다!

머신러닝 딥러닝 인공신경망 pytorch vision-transformer

답변 1

0

잔재미코딩 DaveLee

안녕하세요. 답변 도우미입니다.

말씀하신 부분은 혹시나 궁금해하시는 분들이 계실 것 같아서, 다음과 같이 해당 코드에 상세하게 설명을 드렸습니다.

다음 주석에서 특히 말씀하신 부분과 관련된 부분은

out[:, -1] 은 (batch_size, sequence_length, 2 * hidden_size) 에서,

전체 batch_size 를 선택한다는 의미가 :,

sequence_length 인 28개의 순서가 있고, 각 순서마다 2 * hidden_size 만큼 있음

이중에 최종 값은 맨 마지막 sequence_length 의 2 * hidden_size 임

|out| = (batch_size, hidden_size * 2)

위 부분인데요. 사실 상세하게 설명을 기재해서, 여기에 추가할 부분이 없더라고요. 기재해주신 부분도 마찬가지이고, 마지막 self.layers(out) 의 형태에 맞추, 결과적으로 맨 마지막의 데이터가 최종 결과이기 때문에, 위와 같이 변경하였다고 이해해주시면 좋을 것 같습니다.

감사합니다.

~~~~~~~~~~~~~~

def forward(self, x):

# |x| = batch_first=True 이므로 (batch_size, sequence_length, input_size)

out, = self.sequenceclassifier(x) # output, hn 이므로, h_n 은 사용안함

# output, h_n 이므로, h_n 은 사용안함

# |out| = batch_first=True 이므로 (batch_size, sequence_length, 2 * hidden_size)

# bidirectional 이 True 이면, bidirections 는 2 * hidden_size

out = out[:, -1]

# out[:, -1] 은 (batch_size, sequence_length, 2 * hidden_size) 에서,

# 전체 batch_size 를 선택한다는 의미가 :,

# sequence_length 인 28개의 순서가 있고, 각 순서마다 2 * hidden_size 만큼 있음

# 이중에 최종 값은 맨 마지막 sequence_length 의 2 * hidden_size 임

# |out| = (batch_size, hidden_size * 2)

import torch가 안되는 경우는 어떻게 하나요?

0

17

1

강의 필기는 어떻게 하나요?

0

85

1

섹션 5퀴즈 4번 문제 보기 오류로 보임

0

63

1

섹션17 81번이랑 82번 강의가 중복되는 것 같아서 질문드립니다.

0

88

2

강의교안이 안 옵니다

0

80

1

17-2강 Transfer learning 실습 관련 질문

0

134

2

13섹션 강의자료가 없네요^^

0

92

1

강의자료가 없네요.

0

107

2

LSTM 모델 학습 관련한 질문입니다.

0

127

1

MSE LOSS 관련

0

132

1

test시 minibatch 사용?

0

133

1

Average Test loss 계산식 문의

0

101

1

파이토치 설치

0

247

1

[Pytorch 기울기의 누적 곱? 누적 합?]

0

135

1

3d 텐서에서의 축 구분 질문

0

119

1

항상 tensor([0., 0., 0.]) 형식으로만 나오는 이유

0

111

1

강의자료 PDF 다운로드에 관하여

0

132

1

[실무에서 판다스 copy()메서드의 깊은복사 얕은복사 조정 소요가 생길까?]

0

116

1

섹션 다양한 Optimizer 정리하기 중 딥러닝으로 Regression 문제 적용해보기 (House Price Kaggle 문제) 강의에서 오류가 발생합니다.

0

149

1

마지막에 confusion matrix 작성할때

0

157

1

아나콘다를 사용하지 않고 파이토치 사용하는 방법

0

853

1

test data 의 loss 계산식 문의

0

288

1

차원 출력 관련 문의

0

245

1

섹션 7-4 당뇨병

0

388

3