重みを手動で更新する
重みとバイアスへのアクセス方法がわかったところで、PyTorch のオプティマイザが行う作業を手動で行ってみましょう。PyTorch では自動化されていますが、手作業で練習することで、モデルがどのように学習し調整されるかの直感が身につきます。この理解は、ニューラルネットワークのデバッグや微調整を行う際に役立ちます。
3 層のニューラルネットワークが作成され、model という変数に保存されています。このネットワークはすでに順伝播を実行しており、損失とその導関数が計算済みです。更新の際に勾配をスケーリングするため、既定の学習率 lr が選ばれています。
この演習はコースの一部です
PyTorchで学ぶIntroduction to Deep Learning
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
weight0 = model[0].weight
weight1 = model[1].weight
weight2 = model[2].weight
# Access the gradients of the weight of each linear layer
grads0 = ____
grads1 = ____
grads2 = ____