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のルートディレクトリに移動して、プロパティファイルをコピーしておく。
cd caffe
copy .\windows\CommonSettings.props.example .\windows\CommonSettings.props
各種ライブラリのインストール方法は省略しますが、
CUDAやcudnnはNVIDIAの公式ページからインストールしてください。
PythonはAnacondaを使うと便利です。
また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<CpuOnlyBuild>false</CpuOnlyBuild> //デフォルトはfalse GPU使えない人はtrueに <UseCuDNN>true</UseCuDNN> //デフォルトはtrue GPU使えない人やなくてもいい人はfalseに <CudaVersion>7.5</CudaVersion> //CUDAのバージョン <PythonSupport>true</PythonSupport> //Python使うのでtrueに デフォルトはfalse <MatlabSupport>false</MatlabSupport> //Matlab使うか 今回使わないのでfalse(デフォルト) <CudaArchitecture></CudaArchitecture> //デフォルトではいろいろ書いてあるけど、最近のアーキテクチャ使ってる人は空に(GTX1080など) <CuDnnPath> path to your cudnn </CuDnnPath> //$(CuDnnPath)\cuda\include となるように <PythonDir>C:\Anaconda3\envs\anaconda2</PythonDir> //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が便利です。
動作確認
コマンドプロンプトを開き、pythonを立ち上げ、import caffe がエラーなく通ればインストール完了。
また、\Build\x64\Releaseに移動してcaffe.exeを実行して使い方のメッセージが表示されれば問題なくEXEが生成されていることが確認できます。
補足ですが、MNISTなどのサンプルはシェルスクリプトで書かれているため、これを実行できる環境やソフトを準備する必要があります。
自分はgitを入れるときに設定していました。
以上となります。
Ubuntuよりも簡単にできた気がします。
ちなみにchainerはpip install chainer
だけでインストールできます。