上一篇文章沒有給出caffe+VS2015的具體步驟,只是給出了一個教程的Github地址。但是由於國內網速的問題,有的人文件都沒能成功下載,有的由於英文水平所限,編譯起來也是有點麻煩。所以本文做爲上一篇的補充。基本上是教程的中文版,只不過不是完全翻譯,用自己的話再說一遍,夾雜一些注意事項。
下載
1. 下載Caffe
caffe只有不到10M。還是下面這個地址:
能夠打開的就直接在這個網頁上下載Zip即可。由於種種原因不能打開的,我下載了一個供大家下載:
鏈接:http://pan.baidu.com/s/1eSmWLPK 密碼:6blp
下載下來的文件應該叫caffe-windows-ms.zip
。解壓到同名文件夾,裏面除了caffe的文件之外,還有一個文件夾叫windows
,我們的後續所有的動作都是在這個文件夾下完成。所以可以直接打開這個文件夾。
2. 下載third party libraries
配置過caffe的都知道,caffe之所以難配置,就是因爲這些第三方庫。
而這個教程之所以簡單,就是因爲第三方庫我們只需要下載、解壓就行了!!
下載地址:
https://pan.baidu.com/s/1mhZgDeS?errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0
這個有100多兆。解壓之後差不多一個G。加壓後大概長下面這樣。
然後把這些文件夾(不是包含所有的整個文件夾)複製到前面所說windows
文件夾下的thirdparty
文件夾中。
修改配置
接下來會根據自己的需求對配置文件做一些小的改動。也許你已經發現,在windows
文件夾下除了一堆子文件夾之外,還有一個VS工程文件和配置文件。
1. 首先把CommonSettings.props.example
複製一份,然後改名爲CommonSettings.props
後續所有更改都是在改這個文件。用notepad++打開CommonSettings.props
看一下這個文件裏面是什麼樣。
只看黃框裏的那一部分,也就是我們主要修改的部分。其實就是修改true
和false
而已。符合條件的就改爲true
,比我電腦沒有GPU可用,所以CpuOnlyBuild
我改爲true
。同時把UseCuDNN
和UseNCCL
改爲false
。
2. CUDA
需要的話,從下面的網址下載CUDA Toolkit 8.0
:
如果像我一樣只用CPU,就像上圖那樣改就行了。就是CpuOnlyBuild
改爲true
。同時把UseCuDNN
和UseNCCL
改爲false
。默認是true
的。
3. cuDNN
需要的話,從下面的網址下載cuDNN v5
:
然後解壓zip到%CUDA_PATH%(安裝CUDA時設置的環境變量)。或者,隨意解壓到哪個地方,然後在CommonSettings.props
中修改CuDnnPath
到解壓的位置。
4. Python
如果需要,把上面的PythonSupport
設爲true
。原文讓下載Miniconda,但是我電腦上已經安裝了Anaconda2和Anaconda3,所以就不需要下載了。下載之後需要安裝下面這幾個庫:
conda install --yes numpy scipy matplotlib scikit-image pip
pip install protobuf
我電腦上早已安裝…
然後再CommonSettings.props
中大概72行的位置,修改路徑如下:
下面的庫和包含文件的路徑保持不變即可。
提醒:
編譯完之後
- 把
PythonPath
的環境變量設置爲<caffe_root>\Build\x64\Release\pycaffe
- 或者,複製文件夾
<caffe_root>\Build\x64\Release\pycaffe\caffe
到<python_root>\lib\site-packages
。- 注意是複製整個文件夾,而不是文件夾下所有文件。與上面第三方庫相反。
5. Matlab
設置與Python相仿,不贅述。
也有個提醒:
編譯完之後
- 把 生成的
matcaffe
文件夾添加到Matlab的搜索路徑,- 把
<caffe_root>\Build\x64\Release
添加到系統路徑。
編譯Caffe
上面說起來一大堆,其實修改起來就是分分鐘的事情。修改完之後,用VS2015打開Caffe.sln
,編譯即可。
也有個提醒:
首先,一定要設置模式模式爲release x64。然後,
在工程上右鍵,重新生成解決方案;
或者,菜單->生成->重新生成解決方案。
另外
項目
caffe.binding
如果生成失敗,在它的屬性->配置屬性->C/C++->常規中,把將警告視爲錯誤改成否
,可以使之生成成功。
最後結果是成功14個,失敗4個。失敗的應該是幾個無關緊要不影響使用的,我猜是caffe.managed,mxnet_caffe_wrapper,test_all之類的。
公衆號CVPy,分享OpenCV和Python的實戰內容。每一篇都會放出完整的代碼。歡迎關注。