上一篇文章沒有給出caffe+VS2015的具體步驟,只是給出了一個教程的Github地址。但是由于國內(nèi)網(wǎng)速的問題,有的人文件都沒能成功下載,有的由于英文水平所限,編譯起來也是有點麻煩。所以本文做為上一篇的補充。基本上是教程的中文版,只不過不是完全翻譯,用自己的話再說一遍,夾雜一些注意事項。
下載
1. 下載Caffe
caffe只有不到10M。還是下面這個地址:
能夠打開的就直接在這個網(wǎng)頁上下載Zip即可。由于種種原因不能打開的,我下載了一個供大家下載:
鏈接:http://pan.baidu.com/s/1eSmWLPK 密碼:6blp
下載下來的文件應該叫caffe-windows-ms.zip。解壓到同名文件夾,里面除了caffe的文件之外,還有一個文件夾叫windows,我們的后續(xù)所有的動作都是在這個文件夾下完成。所以可以直接打開這個文件夾。
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文件夾中。
修改配置
接下來會根據(jù)自己的需求對配置文件做一些小的改動。也許你已經(jīng)發(fā)現(xiàn),在windows文件夾下除了一堆子文件夾之外,還有一個VS工程文件和配置文件。

1. 首先把CommonSettings.props.example復制一份,然后改名為CommonSettings.props
后續(xù)所有更改都是在改這個文件。用notepad++打開CommonSettings.props看一下這個文件里面是什么樣。

只看黃框里的那一部分,也就是我們主要修改的部分。其實就是修改true和false而已。符合條件的就改為true,比我電腦沒有GPU可用,所以CpuOnlyBuild我改為true。同時把UseCuDNN和UseNCCL改為false。

2. CUDA
需要的話,從下面的網(wǎng)址下載CUDA Toolkit 8.0:
如果像我一樣只用CPU,就像上圖那樣改就行了。就是CpuOnlyBuild改為true。同時把UseCuDNN和UseNCCL改為false。默認是true的。
3. cuDNN
需要的話,從下面的網(wǎng)址下載cuDNN v5:
然后解壓zip到%CUDA_PATH%(安裝CUDA時設置的環(huán)境變量)?;蛘?,隨意解壓到哪個地方,然后在CommonSettings.props中修改CuDnnPath到解壓的位置。
4. Python
如果需要,把上面的PythonSupport設為true。原文讓下載Miniconda,但是我電腦上已經(jīng)安裝了Anaconda2和Anaconda3,所以就不需要下載了。下載之后需要安裝下面這幾個庫:
conda install --yes numpy scipy matplotlib scikit-image pip pip install protobuf
我電腦上早已安裝...
然后再CommonSettings.props中大概72行的位置,修改路徑如下:

下面的庫和包含文件的路徑保持不變即可。
提醒:
編譯完之后
- 把
PythonPath的環(huán)境變量設置為<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添加到系統(tǒng)路徑。
編譯Caffe
上面說起來一大堆,其實修改起來就是分分鐘的事情。修改完之后,用VS2015打開Caffe.sln,編譯即可。
也有個提醒:
首先,一定要設置模式模式為release x64。然后,
在工程上右鍵,重新生成解決方案;
或者,菜單->生成->重新生成解決方案。
另外
項目
caffe.binding如果生成失敗,在它的屬性->配置屬性->C/C++->常規(guī)中,把將警告視為錯誤改成否,可以使之生成成功。
最后結果是成功14個,失敗4個。失敗的應該是幾個無關緊要不影響使用的,我猜是caffe.managed,mxnet_caffe_wrapper,test_all之類的。

公眾號CVPy,分享OpenCV和Python的實戰(zhàn)內(nèi)容。每一篇都會放出完整的代碼。歡迎關注。
