読者です 読者をやめる 読者になる 読者になる

俺とプログラミング

某IT企業でエンジニアをしてます。このブログではプログラミングに関わることを幅広く発信します。

WindowsでChainerのGPU版MNISTサンプルを動かすまで【cuda 7.5】

Chainer Python Machine Learning

日本発のディープラーニングフレームワークであるChainerを64ビットWindowsにインストールしてGPU版MNIST手書き文字認識サンプルを動かすところまでを解説します。 Chainer自体のインストールはとっても楽ですが、GPUで使おうとすると結構はまります。

必要なもの

手順

1. 64bit版 Python2.7のインストール (標準でpipもついてくる)

Windows x86-64 MSI installerを選択します。
Pythonとpipに対してパスを通すオプションをチェックしつつ、インストーラにしたがってPython2.7をインストールします。

32bitのPythonGPU版のサンプルを動かすと、以下のエラーが出力されて動かない模様。

RuntimeError: CUDA environment is not correctly set up.
library not found. ['cublas64_75.dll', 'cublas64_70.dll', 'cublas64_65.dll']
2. numpy64bit版のインストール

Pythonが64bit版の場合、numpyも64bit版の必要があります。しかし、公式ではサポートされていません。そこで、numpyを手動でインストールします。 といってもpipでファイルを指定するだけなので簡単です。

まず以下のリンクからnumpy‑1.10.1+mkl‑cp27‑none‑win_amd64.whlを選択してダウンロードします。

Windows PowerShellを起動し、ダウンロードしたディレクトリに移動して以下のコマンドを実行してインストールします。 すでにnumpyがインストールされている場合はまず pip uninstall numpy しましょう。

> pip install numpy‑1.10.1+mkl‑cp27‑none‑win_amd64.whl

pipの使い方は以下を参照

非公式のpython binariesは以下のリンクに一覧があります。必要になったら適宜ダウンロードします。

3. Chainerのインストール

Chainer本体は以下の一行でインストールできます。楽チン!

> pip install chainer
> python -c 'import chainer'

でエラーがでなければ、ひとまずChainerのインストールは完了です。

4. CPU版のサンプルを動かしてみる

まだGPUは使えませんが、とりあえずMNIST手書き文字認識のサンプルを動かしてみましょう。 サンプルコードが入った公式のレポジトリをgitを使ってダウンロードします。
gitをまだインストールしてなかったら、以下のリンクからインストーラをダウンロードしてインストールします。

mnistのデータベースなどカレントディレクトリにいろいろダウンロードされるので、フォルダを分けるといいかもしれません。

> mkdir testChainer
> cd testChainer
> git clone https://github.com/pfnet/chainer
> python .\chainer\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...
Done
Converting test data...
Done
Save output...
Done
Convert completed
('epoch', 1)
graph generated
train mean loss=0.282554616562, accuracy=0.911750001175
test  mean loss=0.118135776068, accuracy=0.963700003028

……

うまく動きましたか。しかし、CPUオンリーなので遅いです。
これからGPUで動かせるようにしましょう。数倍は高速になります。

> python .\chainer\examples\mnist\train_mnist.py --gpu 0

とすれば、GPU版が実行できますが、cudaのエラーがでるはずです。

5. Visual Studio 2013 Communityのインストール

CUDAをインストールするまえに、VisualStudioのインストールが必要です。
Visual Studio 2015やVisual Studio ExpressはCUDAがサポートしてません。
以下のページにサポートされているVisualStudioのバージョンが載っています。


Visual Studio 2013 Communityがいいと思います。
以下のリンク左の列から、Visual Studio 2013を選択してインストールします。

6. CUDAのインストール

以下のリンクから、自分の環境にあったインストーラをダウンロードして、インストールします。

サポートされているVisual Studioがインストールされていない場合、途中で、"No supported version of Visual Studio was found"と言われます。 オプションは推奨設定(高速)で問題ないかと思います。

7. GPU版のサンプルを動かす

CUDAのインストールができたら、コンピュータを再起動します。
GPUを有効にするにはもう一度Chainerをインストールしなおす必要があります。

> pip uninstall chainer
> pip install chainer

その後、先ほどのフォルダで、以下を実行してGPU版を試してみましょう。

> python .\chainer\examples\mnist\train_mnist.py --gpu 0

load MNIST dataset
('epoch', 1)
kern.cu
graph generated
train mean loss=0.276942837443, accuracy=0.914166669864
test  mean loss=0.109787774638, accuracy=0.963800002337

……

無事実行できましたか? GPUはやいですね〜。


深層学習 (機械学習プロフェッショナルシリーズ)

深層学習: Deep Learning

Copyright © 2016 ttlg All Rights Reserved.