RNN 학습 루프
이제 전력 소비량 예측 모델을 학습해 볼 시간이에요!
앞서 정의한 LSTM 네트워크가 이미 인스턴스화되어 net에 할당되어 있고, 이전에 만든 dataloader_train도 준비되어 있어요. 또한 torch.nn은 nn으로 임포트되어 있으니 그대로 사용하시면 됩니다.
이 연습에서는 학습이 제대로 진행되는지 확인하기 위해 에포크를 3번만 수행해요. 바로 시작해 볼까요?
이 연습은 강의의 일부입니다
PyTorch로 배우는 Intermediate Deep Learning
연습 안내
- 평균제곱오차(Mean Squared Error) 손실을 설정하고
criterion에 할당하세요. seqs를(배치 크기, 시퀀스 길이, 특성 수)형태, 즉(32, 96, 1)로 리쉐이프하고 결과를seqs에 다시 할당하세요.- 모델에
seqs를 전달해outputs를 얻으세요. - 앞에서 계산한 값들을 바탕으로 손실을 계산해
loss에 할당하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
net = Net()
# Set up MSE loss
criterion = ____
optimizer = optim.Adam(
net.parameters(), lr=0.0001
)
for epoch in range(3):
for seqs, labels in dataloader_train:
# Reshape model inputs
seqs = ____
# Get model outputs
outputs = ____
# Compute loss
loss = ____
optimizer.zero_grad()
loss.backward()
optimizer.step()
print(f"Epoch {epoch+1}, Loss: {loss.item()}")