PyTorch連載経緯は#1をご確認ください。#1はKeras、#2~#7まではTensorFLow、#8からはPyTorchを取り扱っています。#8ではPyTorchの概要やインストール、簡易実行について、#9はAutogradについて取り扱いました。Network"について取り扱います。documentation以下目次になります。Networkチュートリアルについて話を進めていきます。documentationまずはページの概要を知るにあたって冒頭部を要約します。Networkを構築することができます。models)やその微分(differentiate)にあたってautogradに依存しています。nn.Moduleはlayerの情報や、出力(output)を返すforward(input)のメソッドが実装されています。図のような形式でデジタル画像を分類することができます。』もう少し詳しく見ておく方が良さそうなので、上記も要約します。要約:『図で説明されているのはシンプルなfeed-fowardネットワークで、何層かの計算を経て最終的にアウトプットを出力しています。procedure)は下記のようになります。gradient"のようなシンプルなアップデートのルールを用いてネットワークの重みをアップデートする』これらはニューラルネットワークの学習にあたっての一連の流れについて言及されているので、さほど難しくなさそうです。Networkチュートリアルで取り扱う話については把握ができたので、2節で実際に詳細について見ていきます。networkについて取り扱っていきます。procedureの1にあたっています。下記を動かしてみましょう。(中略)実行結果は下記のようになります。ニューラルネットワークのクラスをtorch.nn.Moduleを継承して作成し、__init__関数のところで演算を定義しています。上記ではnetをprintすることで、演算の中身を確認することができます。__init__関数のところで作成した演算を用いて、forwardメソッドにおいて入力から出力までの演算が記述されています。上記のように補足説明があるのでこちらも簡単に要約します。要約:『"forward"関数は必ず定義しなければならないですが、勾配を計算する"backward"関数はautogradを用いることで自動的に定義することができます。"forward"関数の中では任意のTensor演算を行うことができます。モデルの学習可能なパラメータはnet.parametersによって返すことができます。上記のように実行することで、モデルのパラメータの中身を確認することができます。2-2節以降で使うので上記を実行しておきます。データはランダムに作成していますが、MNISTデータを意識して32×32のサイズのデータが生成されています。Function部分について確認していきます。冒頭を簡単に要約します。function)は(予測値(output),実測値(target))のペアを入力とし、予測した値が目的となる実測の値とどのくらい異なっているかについて計算を行います。functionについて実装されています。中でもシンプルな例としては、予測値とターゲットデータの間の平均二乗誤差を計算するnn.MSELossが挙げられます。実際にlossを計算すると下記のようになります。Backprop2-3節ではBackprop部分について確認を行なっていきます。冒頭を簡単に要約します。error)を行うにあたって我々がすべきことは"loss.backward()"を実行することです。』loss.backward()を実際に動かすと下記のようになります。ここではconv1層のバイアスの勾配を確認しています。weights"について確認を行います。簡単に説明部分を要約します。Descent)を用いています。図の3行のコードを書くことで、シンプルなPythonコードを用いて実装することができます。AdamやRMSPropなど様々な最適化手法を用いたい時もあると思われるので、"torch.optim"にそれらのメソッドについて実装しました。これらを用いることで、とてもシンプルに最適化の実装を行うことができます。実際にチュートリアルのコードを写したのが下記です。上記ではoptimizer.step()を用いて一ステップ分のアップデートを行なっています。まとめ#10ではニューラルネットワークの実装についてのチュートリアルを確認しました。Classifier"について取り扱います。Learning)|Deep...連載経緯は#1をご確認ください。Classifier)|DeepL...連載経緯は#1をご確認ください。#1はKeras、#2~#7まではTensor...2019-07-03公式Tutorialに学ぶPyTorch1(Tutorialの全体像&Autograd)|DeepL...連載経緯は#1をご確認ください。(1)月別アーカイブはてなブログをはじめよう!lib-artsさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。