Chainer1.5.0をWindowsにインストールする

  • 30
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Chainerは、1.5.0からCython、h5pyへ依存するようになりました(経緯、および詳細は以下をご参照ください)。

pfnet/chainer v1.5.0
Chainer 1.5のインストールがうまくいかない人への非公式なTips

このため、今までpip install chainerでさくっと入っていたものがちょっと手間になりました。特にWindows環境ではダメージが大きいので、Windowsへのインストールについて解説します。
なお、インストール時のPythonのバージョンは3.5です(ChainerはすでにPython3.5に対応しています!)。

Visual Studioのインストール

Cythonは、C/C++の型などPythonにいくつかの記法を加えたものから、実際のC/C++コードを生成し、利用するための仕組みです。これによりPythonの簡易な記法とC/C++の実行速度の両方を手にすることができます。

NumPyが物足りない人へのCython入門

image

ただ、C/C++のコードを実行する都合上これらのコンパイルが必要になるため、インストールに当たって導入しておく必要があります(具体的にはChainerの中のCythonで書かれた部分から生成されるC/C++コードをコンパイルするために必要)。

WindowsにおけるC/C++コンパイラはVisual Studioに付属するため、これをインストールします。Python3.5の場合、Visual Studio 2015になります(CommunityでOK。ただし、インストール時にVC++にチェックを入れる必要あり)。

Visual Studio Download

なお、コンパイラにはバージョンがあり、これとVisual Studioのバージョンは基本的には合わせる必要があります。

Using Microsoft Visual C with Python

基本的には、PythonのMSC_VERから6を引いたものがVisual C++のバージョンになります。Python 3.5の場合、以下のようにMSCのバージョンは19になるので、Visual C++のバージョンは13・・・がないので14、つまりVisual Studioは2015になります(恐らく、以後一つずれるので今後は6でなく5を引くことになると思われます)。

>>> import sys
>>> sys.version
'3.5.0 |Continuum Analytics, Inc.| (default, Nov  7 2015, 13:25:22) [MSC v.1900
32 bit (Intel)]'

Microsoft Visual C++/製品バージョンと内部バージョン

とはいえ、せっかくインストールするのに古いVisual Studioを入れるのも嫌だと思うので(Python2系はずっと前ですし・・・)、レジストリの編集によって最新版の設定を利用することが可能です。
コンパイルに使われるvcvarsalldistutils.msvc9compiler.find_vcvarsallの中で取得されるので、ここで参照される以下のレジストリの値を書き換えてしまいます。

  • 64bit: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio(VC++のバージョン)\Setup\VC
  • 32bit: HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio(VC++のバージョン)\Setup\VC

この中にある、ProductDirの値を見ています(例: (例: C:\Program Files\Microsoft Visual Studio 14.0\VC))。
上記のキー、値がない場合は新しいキー/値を追加し、実際インストールしたVisual StudioのVC++フォルダを設定しておきます。
※なお、上記の参照されるレジストリの値はPython3.5から変わります。distutils._msvccompiler.pyに記載がありますが、HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\SxS\VC7の中の、キー名: Visual C++バージョン番号(例: 14.0)、値: Visual C++のフォルダになります。

Numpy, h5pyのインストール

お疲れ様でした。あとはもう簡単です。
依存するNumpy, h5pyを以下から落としてきて仮想環境(virtualenv)にインストールします。condaを使っている場合、conda経由でも構いません。

Unofficial Windows Binaries for Python Extension Packages

Chainerのインストール

メインの依存ライブラリは導入済みなので、後は以下でインストールできるはずです。

pip install chainer

※64bitの場合これで入らない?ようなので、その場合はgit cloneでソースを落としてきてからそのフォルダに移動し、python setup.py buildからpython setup.py installをやってみてください。

お疲れ様でした!