RNN の学習ループ
電力消費量を予測するモデルを学習させましょう!
これまでに定義した LSTM ネットワークはすでにインスタンス化されて net に代入されています。以前に作成した dataloader_train も用意されています。さらに、torch.nn は nn としてインポート済みです。
この演習では、学習が正しく進んでいるかを確認するために、エポック数は 3 にとどめます。では始めましょう!
この演習はコースの一部です
PyTorchによる中級ディープラーニング
演習の手順
- 平均二乗誤差(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()}")