始める無料で始める

RNN の学習ループ

電力消費量を予測するモデルを学習させましょう!

これまでに定義した LSTM ネットワークはすでにインスタンス化されて net に代入されています。以前に作成した dataloader_train も用意されています。さらに、torch.nnnn としてインポート済みです。

この演習では、学習が正しく進んでいるかを確認するために、エポック数は 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()}")
コードを編集して実行