この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
5_学習_trainerを利用しない場合 [2017/10/19] adash333 |
5_学習_trainerを利用しない場合 [2018/10/07] (現在) |
||
|---|---|---|---|
| ライン 3: | ライン 3: | ||
| <ChainerでMNIST目次>\\ | <ChainerでMNIST目次>\\ | ||
| [[Chainer2プログラミングの全体図|(0)Chainer2プログラミングの全体図]]\\ | [[Chainer2プログラミングの全体図|(0)Chainer2プログラミングの全体図]]\\ | ||
| - | (1)Chainer2を使用するためのimport文\\ | + | (1)[[Chainer2を使用するためのimport文]]\\ |
| [[(2)データの準備・設定]]\\ | [[(2)データの準備・設定]]\\ | ||
| [[(3)モデルの記述]]\\ | [[(3)モデルの記述]]\\ | ||
| ライン 11: | ライン 11: | ||
| <code> | <code> | ||
| - | #5 学習(Trainerを利用しない場合) | + | #5 学習 |
| - | for epoch in range(繰り返し回数) | + | iterator = iterators.SerialIterator(train, 1000) |
| - | データの加工 | + | updater = training.StandardUpdater(iterator, optimizer) |
| - | model.cleargrads() #勾配初期化 | + | trainer = training.Trainer(updater, (10, 'epoch')) |
| - | loss = model(...) #誤差計算 | + | trainer.extend(extensions.ProgressBar()) |
| - | loss.backward #勾配計算 | + | |
| - | optimizer.update #パラメータ更新 | + | trainer.run() |
| </code> | </code> | ||
| ライン 37: | ライン 37: | ||
| {{:pasted:20171020-001702.png}} | {{:pasted:20171020-001702.png}} | ||
| - | ==== 1. お約束の3行を入力 ==== | + | ==== 1. 学習 ==== |
| 以下のコードを入力して、Shift + Enterを押します。 | 以下のコードを入力して、Shift + Enterを押します。 | ||
| + | |||
| + | 以下の例は、Trainerを利用する方法となっています。 | ||
| <code> | <code> | ||
| - | #5 学習(Trainerを利用しない場合) | + | #5 学習 |
| - | for i in range(len(train)): | + | iterator = iterators.SerialIterator(train, 1000) |
| - | # データの加工 | + | updater = training.StandardUpdater(iterator, optimizer) |
| - | x = Variable(xtrain) | + | trainer = training.Trainer(updater, (10, 'epoch')) |
| - | y = Variable(ytrain) | + | trainer.extend(extensions.ProgressBar()) |
| - | + | ||
| - | model.cleargrads() #勾配初期化 | + | trainer.run() |
| - | + | ||
| - | loss = model(x,y) #誤差計算 | + | |
| - | + | ||
| - | loss.backward() #勾配計算 | + | |
| - | + | ||
| - | optimizer.update() #パラメータ更新 | + | |
| </code> | </code> | ||
| - | すると、以下のような画面になります。(ほとんど何もおこりません。) | + | すると、以下のような画面になります。 |
| - | + | {{:pasted:20171101-164618.png}} | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | Chainerで、モデルと最適化アルゴリズムの設定を記述する作業は上記でおしまいです。 | + | |
| 次は、[[(6)結果の出力]]の設定に進んでください。 | 次は、[[(6)結果の出力]]の設定に進んでください。 | ||
| ライン 90: | ライン 81: | ||
| [[(3)モデルの記述]]\\ | [[(3)モデルの記述]]\\ | ||
| [[(4)モデルと最適化アルゴリズムの設定]]\\ | [[(4)モデルと最適化アルゴリズムの設定]]\\ | ||
| - | (5)学習(Trainerを利用しない場合) ←いまここ\\ | + | (5)学習 ←いまここ\\ |
| [[(6)結果の出力]]\\ | [[(6)結果の出力]]\\ | ||