WindowsでもDeepLearningがやりたい
DeepLearningのフレームワークといえば、CaffeやTensorflow、Chainerなどが有名ですが、これらはWindowsをサポートしていないものが多く、これまでUbuntuで環境構築をしていました。(ChainerはWindowsでも動きます)
でもやっぱりWindowsでもやりたい。
というわけでCaffeをWindowsでできないかと試行錯誤した結果、なんとかビルドできたので記しておきます。
といっても特に難しいことはなく、Windows版のCaffeは公式のページからGithubのレポジトリへのリンクがあるので、そのREADMEに従えばビルドできます。
https://github.com/Microsoft/caffe
ただ上の手順だと、cudnn3あるいはcudnn4じゃないといけなかったり、詳細な説明がなかったり…
自分はcudnn5.1が使いたいので、CaffeのWindowsブランチをForkしてcuDNNv5向けに変更を加えたリポジトリを使います。
変更箇所は以下の通りです。
・include\caffe\layers\cudnn_relu_layer.hpp
・include\caffe\layers\cudnn_sigmoid_layer.hpp
・include\caffe\layers\cudnn_tanh_layer.hpp
・include\caffe\util\cudnn.hpp
・src\caffe\layers\cudnn_conv_layer.cu
・src\caffe\layers\cudnn_relu_layer.cu
・src\caffe\layers\cudnn_relu_layer.cpp
・src\caffe\layers\cudnn_sigmoid_layer.cu
・src\caffe\layers\cudnn_sigmoid_layer.cpp
・src\caffe\layers\cudnn_tanh_layer.cu
・src\caffe\layers\cudnn_tanh_layer.cpp
実行環境
- Windows10
- VisualStudio2013 (2015はCUDAが対応していないためできません)
- CUDA7.5
- cudnn5.1 (v3やv4でも良い)
- Python2.7 (自分はanacondaで)
準備
リポジトリのクローン(場所はお任せします)
Windows版のブランチをダウンロードします。
git clone -b windows https://github.com/yuzsh/caffe.git
caffeのルートディレクトリに移動して、プロパティファイルをコピーしておく。
copy .\windows\CommonSettings.props.example .\windows\CommonSettings.props
各種ライブラリのインストール方法は省略しますが、
CUDAやcudnnは[NVIDIAの公式ページ](https://developer.nvidia.com/cuda-gpus)からインストールしてください。
Pythonは[Anaconda](https://anaconda.org)を使うと便利です。
またPythonモジュールで、numpy、scipy、matplotlib、scikit-image、protobufが必要となるのでインストールが必要です。自分は以下のようにしました。
>```activate anaconda2
conda install -y numpy scipy matplotlib scikit-image pip
pip install protobuf
CommonSettings.propsの編集
.\windows\CommonSettings.propsを開きます。VisualStudioで開くと見やすいでしょう。
確認するところは、
CommonSettings.props
false //デフォルトはfalse GPU使えない人はtrueに
true //デフォルトはtrue GPU使えない人やなくてもいい人はfalseに
7.5 //CUDAのバージョン
true //Python使うのでtrueに デフォルトはfalse
false //Matlab使うか 今回使わないのでfalse(デフォルト)
//デフォルトではいろいろ書いてあるけど、最近のアーキテクチャ使ってる人は空に(GTX1080など)
path to your cudnn //$(CuDnnPath)\cuda\include となるように
C:\Anaconda3\envs\anaconda2 //Pythonのパス
ちなみにDebugモードのときはPythonはfalseにしないとPython27_d.libがないためエラーになります。
これが終わったら、今度はプロジェクトの設定で「警告をエラーとして扱う:No」に変更するのですが、自分のリポジトリをクローンした場合はすでにやってあるので大丈夫かと思います。
### ビルド
あとはcaffe.slnファイルを開いて、ソリューションのビルド。
結構時間かかります。
ビルドが無事完了すると、Build\x64\Release(またはBuild\x64\Debug)に、exeとdllが作成されます。
### PATHの設定
環境変数PYTHONPATHに```<caffe_root>\Build\x64\Release\pycaffe```を追加します。
ちなみにwindowsでの環境変数の取り扱いは、[RapidEE](http://www.rapidee.com/en/about)が便利です。
### 動作確認
コマンドプロンプトを開き、pythonを立ち上げ、import caffe がエラーなく通ればインストール完了。
また、<CAFFE_HOME>\Build\x64\Releaseに移動してcaffe.exeを実行して使い方のメッセージが表示されれば問題なくEXEが生成されていることが確認できます。
補足ですが、MNISTなどのサンプルはシェルスクリプトで書かれているため、これを実行できる環境やソフトを準備する必要があります。
自分はgitを入れるときに設定していました。
以上となります。
Ubuntuよりも簡単にできた気がします。
ちなみにchainerは```pip install chainer```だけでインストールできます。