どうも、カタミチです。
さて、今日も「最短コースでわかる PyTorch&深層学習プログラミング」のひとり読書会、やっていきますかねー。
今日は、線形回帰の計算の続きですね。行ってみましょう!
3-6. 予測計算
前回、前処理して少しXとYのデータを加工したんでしたね。ということで、次の予測計算のパートです。今回まずは前処理まで済ませたデータを…
テンソル形式に変換します。元々はNumPyの配列で定義していたものの変換ですね。浮動小数への変換は、float関数で対応してますね。
で、今回求めたい値である重みとバイアスもテンソルで定義。
初期値には1を採用するみたいです。ここは、以前勉強した時に「1が妥当なのか?」と疑問に思った点ですが、実際には、工夫の余地がある部分でしたね。
で、ここに引数として「request_grad」を設定してます。なるほど、求めたい値それぞれにこの引数を設定する感じなんですね。だんだんお作法が分かってきました。
で、予測関数を定義します。
Yの値は、初期値ではXに1を掛けて1を足したものなので、printした結果は確かに合ってますね。
どうやら、直接\(Yp= W * X + B\)とせずに、予測関数predを挟むことが必要なようです。
で、計算グラフの表示ですが、今回は求める値がWとBの2つあるため、make_dotの引数のparamsには2つとも渡すようですね。
で、表示してみると…
おおー、なんかスタートが2つありますね!
Wの側の「MulBackward0」は、掛け算を表しているようです。で、その下の、矢印が集まった先の「AddBackward0」は、足し算ですね。今回の例で見ると、計算グラフが何を表しているのかが割とイメージ付きました。
ということで
少しずつ、計算グラフってやつにも馴染んできました。おそらく、これからも何度も出てくると思いますので、さらに慣れていきますかねー。
さて、線形回帰はここから損失計算に入っていきますね。引き続き頑張っていこー、おー。
ではまた。