2015年7月1日水曜日

Deep Learning のフレームワーク Chainer を使った画像分類 その1

Chainerについては下記

環境

  • Mac OSX 10.7.5
  • Chainer 1.0.1

セットアップからサンプルコード挙動確認まで

$ sudo pip install virtualenv
$ virtualenv .
$ source bin/activate

$ # Pythonの参照先が書き換わる事を確認
$ which python
~/Documents/chainer_workspace/bin/python
# Pythonのバージョン確認。Chainerで[必要とされるのは Python 2.7+](http://research.preferred.jp/2015/06/deep-learning-chainer/)
$ python --version
Python 2.7.1

$ # QUICK START (http://chainer.org/) を参考にChainerをインストール
$ pip install chainer
~~省略~~
Successfully built chainer
Installing collected packages: numpy, chainer
Successfully installed chainer-1.0.1 numpy-1.9.2

$ # サンプルコードの実行
$ git clone https://github.com/pfnet/chainer.git
$ python chainer/examples/mnist/train_mnist.py
Traceback (most recent call last):
  File "chainer/examples/mnist/train_mnist.py", line 11, in 
    import six
ImportError: No module named six

$ # とりあえず QUICK START で必要 (requires) と記載されたパッケージをインストール
$ pip install scikit-learn
~~省略~~
Installing collected packages: scikit-learn
Successfully installed scikit-learn-0.16.1
$ pip install scipy
~~省略~~
Installing collected packages: scipy
Successfully installed scipy-0.15.1

$ python chainer/examples/mnist/train_mnist.py
Traceback (most recent call last):
  File "chainer/examples/mnist/train_mnist.py", line 11, in 
    import six
ImportError: No module named six

$ # フォーラムを探索。[Can't run the MNIST example](https://groups.google.com/forum/#!topic/chainer/pkIVsfPtL4c) それっぽいのを発見。sixというパッケージをインストールする必要があるよう。
$ pip install six
~~省略~~
Installing collected packages: six
Successfully installed six-1.9.0
$ python chainer/examples/mnist/train_mnist.py
load MNIST dataset
Traceback (most recent call last):
  File "chainer/examples/mnist/train_mnist.py", line 29, in 
    with open('mnist.pkl', 'rb') as mnist_pickle:
IOError: [Errno 2] No such file or directory: 'mnist.pkl

$ find . -name "mnist.pkl"
$ # mnist.pklは存在せず
$ ls chainer/examples/mnist/
README.md            train_mnist.py
download_convert.py        train_mnist_model_parallel.py
$ # download_convert.py がデータを取得するスクリプトと思われるので実行
$ cd chainer/examples/mnist/
$ python download_convert.py 
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...
Done
Converting test data...
Done
Save output...
Done
Convert completed
$ python train_mnist.py 
load MNIST dataset
('epoch', 1)
train mean loss=0.27741594178, accuracy=0.914916668298
test  mean loss=0.117256106085, accuracy=0.963500005007
('epoch', 2)
train mean loss=0.138578489823, accuracy=0.957850001852
test  mean loss=0.0929322862427, accuracy=0.970500005484
...
$ # 動いた

次回、train_mnist.py で行われていることの解析。→Deep Learning のフレームワーク Chainer を使った画像分類 その2

0 件のコメント:

コメントを投稿