ChainerでMNISTを試す

ChainerでMNISTのサンプルコードを試しました。

参考:pfnet/chainer

Chainerをインストール

$ pip install chainer

サンプルコードを動かす

chainer/examples/mnistのディレクトリにMNISTのサンプルコードがあります。学習時間は15分程度でした。

$ python train_ptb.py
GPU: -1
# unit: 1000
# Minibatch-size: 100
# epoch: 20

Downloading from http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz...
Downloading from http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz...
Downloading from http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz...
Downloading from http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz...
epoch       main/loss   validation/main/loss  main/accuracy  validation/main/accuracy  elapsed_time
1           0.191542    0.090873              0.944033       0.9713                    50.9736       
2           0.0741329   0.0754302             0.976317       0.9765                    99.1206       
3           0.0467661   0.0721968             0.985067       0.9797                    161.049       
4           0.0359696   0.0728168             0.988083       0.978                     209.989       
5           0.0290916   0.0821801             0.9904         0.977                     261.491       
6           0.0242685   0.0734186             0.9921         0.9806                    311.869       
7           0.0202083   0.0895192             0.993467       0.9795                    360.346       
8           0.0173684   0.0807823             0.9944         0.9785                    407.156       
9           0.0185823   0.0856489             0.994          0.9792                    456.174       
10          0.0167096   0.0783728             0.9947         0.9797                    506.884       
11          0.0103569   0.095445              0.9968         0.9797                    556.816       
12          0.0153957   0.0862309             0.995267       0.982                     605.577       
13          0.00907149  0.104247              0.9972         0.9803                    653.676       
14          0.013558    0.0988746             0.995767       0.9794                    708.906       
15          0.0123224   0.0865951             0.99605        0.9825                    762.177       
16          0.0102555   0.0927854             0.99725        0.982                     815.14        
17          0.0100652   0.094853              0.996733       0.9805                    877.995       
18          0.00979173  0.0833932             0.997183       0.9849                    932.327       
19          0.00768291  0.116505              0.997767       0.9801                    992.164       
20          0.00946933  0.100418              0.9974         0.9836                    1054.31   

学習が終わるとresultディレクトリの中に学習結果のデータが作成されます。

f:id:tsyknsr:20170201224257p:plain

f:id:tsyknsr:20170201224313p:plain

accuracyが精度、lossが誤差を表しています。学習回数が増す毎に数値が改善されています。(グラフの読み方は勉強中です。)

まとめ

MNISTのサンプルコードを試すことができました。このあとは、コードの中身をチラ見したり、他に用意されているサンプルを試しながら、少しずつ自分でもコードを書けるようになればと思います。

参考