さいごにPyTorchで手書き数字(MNIST)を学習させる前回は、PyTorch(パイトーチ)のインストールなどを行いました。PyTorch(パイトーチ)とは、Pythonの機械学習ライブラリの一つで、現在最もアツいフレームワークです。...早速実装してみるそれでは、実装を始めます。入門編ということで、一つ一つ丁寧に解説していきます!必要なモジュールのインポート今回使うモジュールを先に公開しておきます。plt今回は、これだけ使用します。(つまり最低でも、前回インストールした2つのモジュールがあればOKです)ネットワークの構築まずは、今回使うネットワークを定義していきます。いうクラスを継承して、オリジナルのネットワークを構築していきます。出力層(10)」の3層構造とします。)関数」を使用します。(もちろん使っても良いです笑)PyTorchでは、以上のようなネットワークの場合以下のように定義していきます。dim=1)とてもシンプルです。)を定義すればOKです。データセット(MNIST)のロードMNISTをロードする関数を作りましょう。PyTorchでは、TorchVisionというモジュールでデータセットを管理しています。出来上がった関数を見てみましょう。test_loader}PyTorchでは、データローダーという形でデータを取り扱うことが大きな特徴の一つです。このデータローダーには、バッチサイズごとにまとめられたデータとラベルがまとまっています。dimension)という順番になっています。これは後で、実際に見てみましょう。引数に「データセット」を取ります。いうMNISTのデータを扱うためのクラスインスタンスが与えられていることが分かります。データを正規化したりできます。ここが違う])),batch_size=batch,shuffle=True)のように、平均と分散を指定すると良い精度になる場合もあります。今回用意した関数では、戻り値として各ローダーを辞書型変数にして返しています。メイン処理部分を書く下準備完了です!早速学習させる部分を実装していきます。ネットワークを構築して、データを取得するまでを示します。load_MNIST()これだけでOKです。次は、学習率にどのような最適化を適用するかを決めます。いう最適化手法を使ってみましょう。学習部分の実装では、核となる学習部分の実装に移ります。大枠としては、下記のように学習回数のループの中に、訓練データのループとテスト(検証)データのループを作ります。##########それでは、早速中身を書いていきましょう。訓練部分は、以下のようにコーディングしてみました。dimension)になっていることがわかります。