chainerでcaffe model dataを使っているサンプルコードを試す
この記事を試した時のメモ。
Chainerで入力画像の最適化 - mktozkの日記
正直言って、この記事で何をやっているか分かっていない。。。
学習済みモデルデータ
https://github.com/pfnet/chainer.git
をTortoiseGitでチェックアウト。
Git for Windows
Gitでクローンしようとしたら、TortoiseGitでエラーが出た。
git for windows not found
Git for Windowsというのを入れていなかった。
git サーバ/ブラウザツールの構築方法
http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel
エラーその1
Chainerで入力画像の最適化 - mktozkの日記
に載っているコードを実行したら、
cuda.init(gpu) は無い、というようなエラーになった。
no attribute 'init'
というようなエラー。(メモし忘れた)
chainerを1.3.2から1.5.1にバージョンアップした。
Windowsにchainer 1.5.1を入れる - kubotti’s memo
警告その1
C:\Python2710\lib\site-packages\chainer\cuda.py:85: UserWarning: cuDNN is not enabled. Please reinstall chainer after you install cudnn (see https://github.com/pfnet/chainer#installation). 'cuDNN is not enabled.\n'
NVIDIA cuDNN – GPU Accelerated Deep Learning | NVIDIA Developer
ユーザー登録した。
cuDNN v4 Library for Windows をダウンロード。
cudnn-7.0-win-x64-v4.0-rc.zip
を解凍したら、
cuda\bin\cudnn64_4.dll
cuda\include\cudnn.h
cuda\lib\x64\cudnn.lib
が出てきたので、検索で出てきた、
Windows上にChainer v1.5+CUDA+cuDNNを一番簡単に入れれる方法 - Qiita
の通り、
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5
にコピペ。
chainerをインストールし直さないといけないらしい。
cuDNN
chainerを入れ直したら、エラーになった。
略 Executing cythonize Options: {'profile': False, 'annotate': False, 'linetrace': False, 'no_cuda': False} Include directories: ['C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v7.5\\include', 'C:\\Python2710\\lib\\site-packages\\numpy\\core\\include'] Library directories: ['C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v7.5\\bin', 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v7.5\\lib\\x64'] 略 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include" -IC:\Python2710\lib\site-packages\numpy\core\include -IC:\Python2710\include -IC:\Python2710\PC /Tpcupy\cuda\cudnn.cpp /Fobuild\temp.win-amd64-2.7\Release\cupy\cuda\cudnn.obj cudnn.cpp C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include\cuda_runtime.h : warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss c:\program files\nvidia gpu computing toolkit\cuda\v7.5\include\cuda_runtime_api.h(1974) : warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss cupy\cuda\cudnn.cpp(2718) : error C2660: 'cudnnAddTensor' : function does not take 8 arguments cupy\cuda\cudnn.cpp(3798) : error C2660: 'cudnnSetConvolutionNdDescriptor' : function does not take 6 arguments cupy\cuda\cudnn.cpp(4926) : error C2660: 'cudnnConvolutionBackwardFilter' : function does not take 10 arguments cupy\cuda\cudnn.cpp(5145) : error C2660: 'cudnnConvolutionBackwardData' : function does not take 10 arguments error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\BIN\\amd64\\cl.exe' failed with exit status 2 ----------------------------------------
pip install -U chainer -vvvv
というコマンドを試してもダメだった。
Download cuDNN v4 Release Candidate (December 10, 2015), for CUDA 7.0 and later.
をダウンロードしたのがいけなかったっぽい。
Download cuDNN v3 (September 8, 2015), for CUDA 7.0 and later.
をダウンロードして、
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5
に上書き。
dllの名前が
cudnn64_70.dll
で、cuDNN v4と違っていた。
pip install chainer
でうまくインストールできた。
Chainerで入力画像の最適化 - mktozkの日記
のコードを実行して、警告が出なくなった。
出力結果
記事では、動物の画像を入力して、最適化された画像?にしているようだったので、
Google画像検索で適当にマンドリルの画像を取ってきて、54行目あたりの、
image_path変数に画像のパスを設定した。
result.pngの結果がこれ↓。
cuDNNが入っていないときは真っ黒な画像だったけど、それっぽい画像になった。
でもこの画像がどういう意味を持っているのはわからない。。
PyCharmのデバッグモードで動かしたら、固まった。
普通に(Debugでなくて)RunするとPython.exeがメモリを2400MBくらい使っていた。