理論も何も良くわからんけど、とりあえず、Chainer ってやつを使えば良さそうなので、まずは遊んでみる。
Chainer のインストール
$ sudo pip install chainer
サンプルプログラムを動かしてみる
https://github.com/pfnet/chainer/archive/v1.4.0.tar.gz からサンプルコードをダウンロードして解凍。
$ python chainer-1.4.0/examples/mnist/train_mnist.py
上記コードを実行すると、学習用の画像とかがダウンロードされる(っぽい)。
下記のようなメッセージが表示される。
load MNIST dataset
Downloading train-images-idx3-ubyte.gz...
Done
Downloading train-labels-idx1-ubyte.gz...
Done
Downloading t10k-images-idx3-ubyte.gz...
Done
Downloading t10k-labels-idx1-ubyte.gz...
Done
Converting training data...
なんかトレーニング用のデータを変換しているらしい。ここでけっこう時間がかかっている。
Mac の CPU が Python にがんがん使われている。
5分くらいかかって以下のメッセージが表示された。
Done
Converting test data...
Done
Save output...
Done
Convert completed
('epoch', 1)
graph generated
少し経って下記のメッセージが。ぜんぜんわからない。
train mean loss=0.275414595995, accuracy=0.914616667858
test mean loss=0.114848682121, accuracy=0.963400005698
('epoch', 2)
また少し経ってこんなのが。
train mean loss=0.137152780695, accuracy=0.957950003346
test mean loss=0.0877771127559, accuracy=0.971900004148
('epoch', 3)
まだまだ何かやってる
train mean loss=0.110678343908, accuracy=0.965866673589
test mean loss=0.075476950946, accuracy=0.975700005293
('epoch', 4)
train mean loss=0.092806226653, accuracy=0.971383340855
test mean loss=0.068294599885, accuracy=0.980000004172
('epoch', 5)
train mean loss=0.0838751178157, accuracy=0.974283342063
test mean loss=0.0674362354377, accuracy=0.979800006747
('epoch', 6)
train mean loss=0.0750793520225, accuracy=0.977433344722
test mean loss=0.0633212117393, accuracy=0.98050000906
('epoch', 7)
train mean loss=0.0696381919899, accuracy=0.978033342759
test mean loss=0.0718443817401, accuracy=0.98000000596
('epoch', 8)
暇だから チュートリアル でも読んでいよう。
めも
- Chainer はニューラルネットワークのための柔軟なフレームワーク
- このフレームワークの主な目的は柔軟さ
- ほとんどの深層学習(ディープラーニング)のフレームワークは “Define-and-Run” 型
- Chainer は “Define-by-Run” 型
やばい。チュートリアルを読んでも何言っているのか何したいのかぜんぜんわからない。本を読もう。
とりあえず、この本を買ってみた。 がんばって読んでみよう。