DeepLearningライブラリのChainerがすごい、らしい
Preferred Infrastructure(以下PFI)からスピンオフした会社、Preferred NetworksのリリースしたDeepLearningライブラリのChainerがすごい、と話題になっています。*1
解説
Deep Learning のフレームワーク Chainer を公開しました | Preferred Research
公式
Chainer: A flexible framework of neural networks
GitHub
pfnet/chainer · GitHub
ドキュメント
Chainer – A flexible framework of neural networks — Chainer 1.1.0 documentation
おそらく初露出
ディープラーニング最近の発展とビジネス応用への課題
公式ツイッター
chainer (@ChainerOfficial) on Twitter
はてぶの反応
はてなブックマーク - Deep Learning のフレームワーク Chainer を公開しました | Preferred Research
Hi-king君によるユーザーインストール事例
人工言語処理入門
Hi-KingさんのChainerの解説がとてもわかりやすい - shi3zの長文日記
てれかさんによる紹介
機械学習ライブラリ Chainerの紹介 - のんびりしているエンジニアの日記
kenmatsu4さんによる中身の解説
Python - 【機械学習】ディープラーニング フレームワークChainerを試しながら解説してみる。 - Qiita
Python - 【ディープラーニング】ChainerでAutoencoderを試して結果を可視化してみる。 - Qiita
sinhrksさんによるR-CNN試行記録
Chainer で Deep Learning: model zoo で R-CNN やりたい - StatsFragments
mktozkさんによるMNISTのテスト記
Chainerを使って特徴抽出してみた - mktozkの日記
xiaoxiaさんによるMNISTのテスト記
[win7][python]chainer の mnist を動かす : 女プログラマってどうよ?
ukonllyさんによるEC2のGPUでChainerを動かした事例
ディープラーニングフレームワークChainerをEC2のGPUインスタンスで動かす g2.2xlarge instance - 開発めも2
何がすごいのか注記。
Windowsにすごいインストールしにくい、ではありません。ネガティブな意図は全くありません。
公式の解説に書いてあるように、
- 今までのディープラーニングライブラリの多くがプログラミング言語上に独自に実装したマクロ言語にちかいような書きかただったのに対してプログラミング言語の制御構文そのまま素直に書けること
- 行数を短く書けること
- 可変長データを扱えること
- CUDA対応が容易
と、これらのおかげで簡単に扱えるようになり、
- ユーザーが圧倒的に多く増えそうなこと
がすごそうだ、などなどです。
いつものように
このブログのいつものスタンスのように、Windows環境でインストールしてサンプルを動かすところまで、やり散らかしてみます。
Webページには、とても簡単にインストールできることがアピールされています。
Install Chainer:
pip install chainer
Pythonユーザならすぐわかるのでしょうけれど、ほとんど触ったことがないので良くわかりません。GitHubのReadmeを覗いてみると、
Requirements
Minimum requirements:
Python 2.7+ (v2.7.9 is recommended)
NumPy
Requirements to enable CUDA:CUDA 6.5+
PyCUDA
scikits.cuda (pip install 'scikits.cuda>=0.5.0b1,!=0.042')
Mako (depending through PyCUDA)
Recommended:CuDNN v2
scikit-learn (to run some examples)
OpenCV 2.4 (to run some examples)
と、あります。CUDAを使えるようにするためには、いろいろ入れる必要がありそうです。
Python2.7
初心者なのでPythonのインストールからはじめます。
Download Python | Python.org
Python 2.7.10 - 2015-05-23 Windows x86-64 MSI installer, Python 2.7.10の64ビット版のインストーラをダウンロードしてそのままダイアログに沿ってインストールします。
ボタンを押してダウンロードすると32ビット版なので注意。
途中、インストールオプションで環境変数の設定を有効にするのを忘れないでください。
忘れた場合は、Windowsの環境変数のPATHに、>>
C:\Python27;C:\Python27\Scripts;<<を追加しておきます。
CUDA 6.5+
CUDA 7 Downloads
バージョン6.5以上とのことなので、現在の最新版の7をインストールしてみます。どちらも同じだと思いますが、ネットワークインストーラを使いました。
Chainerのインストール
コマンドプロンプトを開いて、適当な場所で
pip install chainer
を実行します。何事もなければ、無事インストールが完了します。
C:\Python27\Src>pip install chainer
You are using pip version 7.0.1, however version 7.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting chainer
Using cached chainer-1.0.0.zip
Collecting numpy (from chainer)
Using cached numpy-1.9.2.tar.gz
Installing collected packages: numpy, chainer
Running setup.py install for numpy
Running setup.py install for chainer
Successfully installed chainer-1.0.0 numpy-1.9.2C:\Python27\Src>
pyCUDAなどのインストール
gitHubのREADMEを見ると、
pip install `chainer-cuda-requirements`
をしなさい、と書いてあります。そのままコピペしてコマンドプロンプトに入れてみても、エラーが出てうまくいきません。
Hi-king君のブログには、
pip install -r chainer/requirements/cuda-requirements.txt
としなさい、とあります。chainerパッケージソースは、C:\Python27\Lib\site-packages\chainerにありますので、
C:\Python27\Lib\site-packagesに移動してコマンドを実行します。
依存関係のあるすべてのライブラリのインストールが始まるのですが、悲しいことにエラーで途中で止まってしまいます。
pytoolsで一度止まり、再度実行すると、pycudaのインストールでcuda.libが無いとエラーが出て止まってしまいます。
これをこのまま正攻法ではうまく解決することができなかったので、搦め手の作戦でプリビルド版pycudaをインストールしてしまうことにします。
Python Extension Packages for Windows - Christoph Gohlke
から、pycuda‑2014.1+cuda7028‑cp27‑none‑win_amd64.whlをダウンロードして、c:\Python27\Srcなど適当な場所に置きます。
.whlファイルというのはpip用パッケージファイルだそうなので、pip installを使うと、
C:\Python27\Src>pip install "pycuda-2014.1+cuda7028-cp27-none-win_amd64.whl"
You are using pip version 7.0.1, however version 7.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
pycuda-2014.1+cuda7028-cp27-none-win_amd64 (1).whl is not a supported wheel on t
his platform.
pipが古いと怒られます。言われたとおりに、pip install --upgrade pipとすると、今度は不明なエラーが出てきます。
仕方が無いので、別のコマンドでインストールするようにします。
easy_install -U pip
再度、C:\Python27\Src>pip install "pycuda-2014.1+cuda7028-cp27-none-win_amd64.whl"しても、それでもうまくpyCUDAが入ってくれないので、ためしに
easy_install pycuda
したら入ってくれました。なんだかなぁ?
exampleの実行
Hi-King君に倣って、MNIST(手書き数字データベース)のトレーニングを動かしてみます。
pipではexampleまではインストールしてくれないので、結局gitHubからchainerをdownload Zipして持ってきてc:\Python27\Srcなど適当なフォルダにおきます。
python chainer/examples/mnist/train_mnist.py
としてみると、sklearnが無いとのエラーで実行できません。これはscipyの一部っぽいので、scipyを入れるために
easy_install scipy
をしてみます。
どーにかこーにか、動いてくれるとこんな感じ。
C:\Python27\Src>python chainer/examples/mnist/train_mnist.py --gpu=0
C:\Python27\lib\site-packages\scikits\cuda\cublas.py:273: UserWarning: creating CUBLAS context to get version number
warnings.warn('creating CUBLAS context to get version number')
fetch MNIST dataset
epoch 1
train mean loss=0.306786188462, accuracy=0.905849980625
test mean loss=0.113493760865, accuracy=0.963599978685
epoch 2
train mean loss=0.139079807708, accuracy=0.958166643878
test mean loss=0.0890373891999, accuracy=0.970099974871
epoch 3
train mean loss=0.109997754642, accuracy=0.965649973452
test mean loss=0.0795224017871, accuracy=0.974599972963
epoch 4
train mean loss=0.0917859388577, accuracy=0.971499970555
test mean loss=0.073240505328, accuracy=0.97779997468
epoch 5
train mean loss=0.0833765683455, accuracy=0.973849968414
test mean loss=0.0683212573198, accuracy=0.979299973845
epoch 6
train mean loss=0.0766474742768, accuracy=0.97638330241
test mean loss=0.063418156154, accuracy=0.980099976659
epoch 7
train mean loss=0.067410419425, accuracy=0.978983300924
test mean loss=0.0646204504395, accuracy=0.980999974608
epoch 8
train mean loss=0.0682146364241, accuracy=0.978966634572
test mean loss=0.0602863396564, accuracy=0.982399975657
epoch 9
train mean loss=0.0608139315932, accuracy=0.98093330125
test mean loss=0.0617811113021, accuracy=0.981899975538
epoch 10
train mean loss=0.0606179020866, accuracy=0.980583300392
test mean loss=0.0636145667713, accuracy=0.982399974465
epoch 11
train mean loss=0.0576722102691, accuracy=0.982099967202
test mean loss=0.0656754320448, accuracy=0.981999973655
epoch 12
train mean loss=0.0559694529099, accuracy=0.982966634134
test mean loss=0.0679412587003, accuracy=0.980999975204
epoch 13
train mean loss=0.0499226394409, accuracy=0.98391663452
test mean loss=0.0610606807985, accuracy=0.982999975085
epoch 14
train mean loss=0.0506608592724, accuracy=0.98413329949
test mean loss=0.0630035862713, accuracy=0.982499975562
epoch 15
train mean loss=0.0496960212413, accuracy=0.98439996769
test mean loss=0.0606312751885, accuracy=0.983599977493
epoch 16
train mean loss=0.0483314509546, accuracy=0.984716634254
test mean loss=0.0615491026078, accuracy=0.984199975133
epoch 17
train mean loss=0.0454906783598, accuracy=0.985766634842
test mean loss=0.0733622892188, accuracy=0.981299977303
epoch 18
train mean loss=0.0453769801884, accuracy=0.986183302402
test mean loss=0.0641495033387, accuracy=0.982499976158
epoch 19
train mean loss=0.0435018022994, accuracy=0.987049969335
test mean loss=0.06271149139, accuracy=0.985099976063
epoch 20
train mean loss=0.0425746999255, accuracy=0.987483302355
test mean loss=0.0616144765261, accuracy=0.983399974704
何が悪いのか知らないけれど、面倒くさい・・・
途中、試行錯誤していたのでここには書いてないものもインストールしているかもしれません。
http://aka.ms/vcpython27なんてのも入れた記憶が。。。
とりあえずexampleをcudaで動かすまでの手順の整理
- Python27の64bit版をインストール.環境変数PATHの設定をしておく。
- Download Microsoft Visual C++ Compiler for Python 2.7 from Official Microsoft Download Centerをインストール(VS2012使用の場合)
- GitHub https://github.com/pfnet/chainer からdownload zipでchainerをダウンロード。c:\Python27\Srcに置く。以下の作業はc:\Python27\Srcをカレントディレクトリとして行う。
- Pythonライブラリのプリビルドをhttp://www.lfd.uci.edu/~gohlke/pythonlibs/から4つ持ってくる。
numpy-1.9.2+mkl-cp27-none-win_amd64.whl
pycuda-2014.1+cuda7028-cp27-none-win_amd64.whl
scipy-0.15.1-cp27-none-win_amd64.whl
scikit_learn-0.16.1-cp27-none-win_amd64.whl
- pipのバージョンアップ
pip install --upgrade pip
easy_install -U pip
pip install --upgrade pip
easy_install pip
- 関連ライブラリのwhlを使ったpipによるインストール
pip insall numpy-1.9.2+mkl-cp27-none-win_amd64.whl
pip install pycuda-2014.1+cuda7028-cp27-none-win_amd64.whl
pip install pycuda-2014.1+cuda7028-cp27-none-win_amd64.whl
pip install pycuda-2014.1+cuda7028-cp27-none-win_amd64.whl
easy_install pycuda
pip install scikit_learn-0.16.1-cp27-none-win_amd64.whl
pip install scipy-0.15.1-cp27-none-win_amd64.whl
- chainerのインストール
pip install chainer
- cudaのrequirementsをインストール
pip install -r chainer/chainer/requirements/cuda-requirements.txt
pip install -r chainer/chainer/requirements/cuda-requirements.txt
- exampleをCPUでテスト
python chainer/examples/mnist/train_mnist.py
- exampleをGPUでテスト
python chainer/examples/mnist/train_mnist.py --gpu=0
インストーラの機嫌が良くわかりませんね・・・。
- 作者: 岡谷貴之
- 出版社/メーカー: 講談社
- 発売日: 2015/04/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る