WindowsでChainer環境を整える


はじめに

近年話題のDeepLearning。CaffeやTensorFlowなど様々なフレームワークがありますが、私はもっぱらChainer派です。
普段はUbuntu14.04を使用しているのですが、先日Windowsマシン上でChainerを扱わなければならないことが有り、Ubuntuの時のようにスムーズにChainerが導入できず、かなり手間取ってしまいました。
レアケースだとは思うのですが、引っかかったところとその解決方法をまとめてみました。

環境

  • Windows 10
  • Python 2.7

PythonやGitの導入に関しては割愛させていただきます。
ちなみにCPU環境だったのでCUDA等に関しては説明できません。

引っかかったところ

モジュールが入らない!

chainerはnumpy, scipy, h5pyの3つがインストールされていなければ、インストールできないようです。

これらのモジュールをインストールする際に、いきなり「pip install numpy」のようにしてもインストールできません。
どうやらwhlというコンパイル済みのファイルからインストールする必要があるようです。
こちらのサイトに様々なwhlファイルがありますので、こちらからダウンロードしましょう。必要なwhlファイルをダウンロードしたら、そのファイルを使ってpip installします。下記はnumpyの例です。

cd [whlファイルがあるディレクトリ]
pip install numpy-1.11.1+mkl-cp27-cp27m-win_amd64.whl

scipy, h5pyも同様にwhlファイルからインストールしましょう。

※プロキシ環境の場合

$ pip install [モジュール名] --proxy=[user]@[proxy]:[port]

chainerのwhlファイルがない!

さて、先ほどのサイトですがchainerのwhlファイルはありません。(2016/06/30現在)
なのでGitHubからコードをcloneして、ビルドしましょう。

$ git clone https://github.com/pfnet/chainer.git
$ cd chainer
$ python setup.py install

setup.pyの実行が途中で止まってしまう

エラーメッセージにも出てくると思いますが、Visual Studio C++が必要みたいです
ここからダウンロードしてインストールしましょう

確認

これでやっとインストールできるはずです。

ちゃんとChainerがインストールできたか確認する為、ExampleのMNISTの認識をしてみましょう。
git cloneしてきたディレクトリで下記を実行してみてください。

$ python examples/mnist/train_mnist.py
GPU: -1
# unit: 1000
# Minibatch-size: 100
# epoch: 20
Network type: simple

load MNIST dataset
epoch 1
graph generated
train mean loss=0.190369202715, accuracy=0.941016668603, throughput=994.727940618 images/sec
test  mean loss=0.0899474363861, accuracy=0.970900004506
epoch 2
・
・
・

CPU環境なので私は10分くらいかかりました

おわりに

Windows10にbashが導入されるらしいですので、今後はこのように面倒な手順を踏まなくても良くなると思います。
「導入されるまで待てない!」という方は今回の方法を試してみてください。