スポンサーリンク

Chainer2でMNIST(1)

Chainer2の本を衝動買い!

Chainerとっつきにくくて避けていた私でも、なんとなく概要が分かった気がしました。

(環境)
Windows 8.1
Anaconda
Python 3.5
Chainer 2.0

(1)以下のサイトのコードをJupyter notebook上で実行してみる。

https://qiita.com/abechi_17/items/b271b7042fae126616d7
Chainer 2.0 のMNISTサンプルで推論を動かす
abechi_17
2017年07月01日に投稿

コード
https://github.com/abechi/chainer_mnist_predict

これの、train.py を実行してみたい。Python 2で書かれているとのことだが、Python 3との違いが from __future__ import print_function 以外分からない。

Chainer 2.0 のMNISTサンプル(公式Document)
https://github.com/chainer/chainer/tree/v2.0.0/examples/mnist

(2)Jupyter Notebookの起動

https://github.com/abechi/chainer_mnist_predict/blob/master/train_mnist.py

のコードをコピペしてShift + Enter を押しても、よく分からないエラー。がっくし。

(3)Jupyter notebookはあきらめて、Anaconda Promptで試してみる。

C:/py/chainer2/MNIST/ フォルダ下に、train_mnist.py というファイルを作成し、以下のコードをコピペして保存。

https://github.com/abechi/chainer_mnist_predict/blob/master/train_mnist.py

Anaconda Prompt (Python 3.5, Chainer 2.0の仮想環境「chainer2」)で、以下を実行。

python train_mnist.py --epoch 3

貧弱なノートパソコンなので、epoch 3 にして実行。3分くらいかかって、以下のように結果が出た!

MNISTフォルダは、最初はtrain_mnist.pyファイルしかなかったのが、以下のようなファイルやフォルダが作成されている。

accuracy.jpg

loss.png

(4)最初の「from __future__ import print_function」が気持ち悪いので、コメントアウトして実行してみる。

(変更前)

(変更後)

Anaconda Promptで、以下を実行。

python train_mnist.py --epoch 3

うまくいった。

(5)以下のサイトを参考(コピペ)して、flaskとあわせてみる

https://recipe.narekomu-ai.com/2017/10/chainer_web_demo_2/
ChainerとFlaskで作る機械学習デモアプリ 後編 Webアプリの構築 2017/10/6

(変更前)

(変更後)

Anaconda promptで以下を実行。

python predict.py

WEBブラウザで、http:/localhost:5000 を開く

エラー。

predict.py を、以下のように変更。

(変更前)

(変更後)

Anaconda promptでCtrl+Cで一回stopしてから、もう一度、以下を実行。

python predict.py

WEBブラウザで、http:/localhost:5000 を開く

答えは思いっきり間違っているけど、predictは実行できた!

これをWEB上にデプロイできれば、もっとうれしいのだけれど。

ちなみに、28×28 pixelのpng画像のみpredictできる仕様であるらしい。

なんじゃこりゃ?

白黒反転画像のみらしい。。。

 

 

次は、このコードの内容を一つずつ、追っていきたい。