ユーザ用ツール

サイト用ツール


chainer2プログラミングの全体図

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
chainer2プログラミングの全体図 [2017/11/02] – [Trainerを利用する場合のChainer全体図] adash333chainer2プログラミングの全体図 [2018/10/07] (現在) – 外部編集 127.0.0.1
行 1: 行 1:
 ===== Chainerプログラミングの全体図 ===== ===== Chainerプログラミングの全体図 =====
  
 +<wrap hi>Chainer2でMNIST目次</wrap>\\
 [[Chainer2プログラミングの全体図]] [[Chainer2プログラミングの全体図]]
   -[[(1)Chainer2を使用するためのimport文]]   -[[(1)Chainer2を使用するためのimport文]]
行 11: 行 12:
  
  
-必ずもこの書き方ではなくもよらしいです。+あくまで一例として記載させてただきます。
  
 WEB上のMNISTのサンプルコードを読んでいると、Kerasだと皆ほぼ同じコードになるのに、Chainerだと人によってコードが結構異なる感じで、初心者には本当にとっつきにくいイメージでした。 WEB上のMNISTのサンプルコードを読んでいると、Kerasだと皆ほぼ同じコードになるのに、Chainerだと人によってコードが結構異なる感じで、初心者には本当にとっつきにくいイメージでした。
行 43: 行 44:
 class MyModel(Chain): class MyModel(Chain):
     def __init__(self):     def __init__(self):
-        super(MyModel,self).__init__(+       super(MyModel,self).__init__(
             # パラメータを含む関数の宣言             # パラメータを含む関数の宣言
         )         )
-     
     def __call__(self, ...):     def __call__(self, ...):
     # モデルを記載     # モデルを記載
行 52: 行 52:
 (4)#4 モデルと最適化アルゴリズムの設定 (4)#4 モデルと最適化アルゴリズムの設定
 model = MyModel() model = MyModel()
 +model = L.Classifier(model)
 optimizer = optimizers.Adam() optimizer = optimizers.Adam()
 optimizer.setup(model) optimizer.setup(model)
  
 +(5)#5 学習と結果の出力
 # UpdaterにIteratorとOptimizerを渡す # UpdaterにIteratorとOptimizerを渡す
 from chainer import training from chainer import training
- 
 updater = training.StandardUpdater(train_iter, optimizer, device=gpu_id) updater = training.StandardUpdater(train_iter, optimizer, device=gpu_id)
- 
-(5)#5 学習と結果の出力 
 # TrainerにUpdaterを渡す # TrainerにUpdaterを渡す
 trainer = training.Trainer(updater, (max_epoch, 'epoch'), out='mnist_result') trainer = training.Trainer(updater, (max_epoch, 'epoch'), out='mnist_result')
行 66: 行 65:
 from chainer.training import extensions from chainer.training import extensions
     # trainer.extend()で、学習の進行状況を表すプログレスバーや、lossのグラフ化と画像の保存などを行う     # trainer.extend()で、学習の進行状況を表すプログレスバーや、lossのグラフ化と画像の保存などを行う
 +# 学習を実行
 trainer.run() trainer.run()
  
行 77: 行 76:
 import numpy as np import numpy as np
 import chainer import serializers import chainer import serializers
- 
 # Network definition # Network definition
     # train.py と同じModelを定義     # train.py と同じModelを定義
- 
 # modelをClassifier化し、train.pyでの学習結果のパラメータをloadする # modelをClassifier化し、train.pyでの学習結果のパラメータをloadする
 model = L.Classifier(MLP(1000, 10)) model = L.Classifier(MLP(1000, 10))
行 111: 行 108:
 ==== Chainer2でMNISTのコード ==== ==== Chainer2でMNISTのコード ====
 以下にコードそのものを記載します。非常に長く取っつきにくいコードですが、次回以降、順に解説させていただきます。 以下にコードそのものを記載します。非常に長く取っつきにくいコードですが、次回以降、順に解説させていただきます。
 +
 +なお、今回はMNISTのデータセットを、Chainerがあらかじめ用意したものを使って学習を行いますが、画像データからChainer用データセットに変換する方法については、[[Chainer2用自前データの準備]]をご覧下さい。(かなりややこしいので、最初は、以下のコードを写経してから、自前データの準備に進むのがお勧めです。)
  
 train_mnist_mlp.py train_mnist_mlp.py
行 126: 行 125:
 </html> </html>
  
 +次のページから、上記コードについて順番に解説していきます。
  
 次 [[(1)Chainer2を使用するためのimport文]] 次 [[(1)Chainer2を使用するためのimport文]]
行 164: 行 163:
 前 [[Chainer2.0をWindowsにインストール]] 前 [[Chainer2.0をWindowsにインストール]]
  
-目次+ 
 +<wrap hi>Chainer2でMNIST目次</wrap>\\
 [[Chainer2プログラミングの全体図]] [[Chainer2プログラミングの全体図]]
   -[[(1)Chainer2を使用するためのimport文]]   -[[(1)Chainer2を使用するためのimport文]]
行 173: 行 173:
   -[[(6)結果の出力|(6)学習結果のパラメータの保存(Chainer)]]   -[[(6)結果の出力|(6)学習結果のパラメータの保存(Chainer)]]
   -[[(7)推測|(7)推測(Chainer)]]   -[[(7)推測|(7)推測(Chainer)]]
 +
 +

chainer2プログラミングの全体図.1509658840.txt.gz · 最終更新: 2018/10/07 (外部編集)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki