데이터셋을 LSTM 네트워크에 적용하기 위해 형태를 변경합니다.
코드 7-68 데이터셋 형태 변경
X_train_tensors = Variable(torch.Tensor(X_train))
X_test_tensors = Variable(torch.Tensor(X_test))
y_train_tensors = Variable(torch.Tensor(y_train))
y_test_tensors = Variable(torch.Tensor(y_test))
X_train_tensors_f = torch.reshape(X_train_tensors, (X_train_tensors.shape[0], 1, X_train_tensors.shape[1]))
X_test_tensors_f = torch.reshape(X_test_tensors, (X_test_tensors.shape[0], 1, X_test_tensors.shape[1]))
print("Training Shape", X_train_tensors_f.shape, y_train_tensors.shape)
print("Testing Shape", X_test_tensors_f.shape, y_test_tensors.shape)
다음은 변경된 훈련과 테스트 데이터셋의 형태를 출력한 결과입니다.
Training Shape torch.Size([200, 1, 5]) torch.Size([200, 1]) Testing Shape torch.Size([53, 1, 5]) torch.Size([53, 1])
이제 GRU 모델의 네트워크를 살펴볼 텐데, 역시 LSTM 계층과의 차이점 위주로 학습하는 것이 중요합니다. 하지만 이미 GRU 셀 부분에서 네트워크 부분에 대해 살펴보았기 때문에 어렵지 않을 것입니다.