在網上找了許多安裝Caffe的教程 感覺全都是雜亂無章的 而且也沒有詳細的 只能自己當小白鼠來實驗一次了
本次配置:CUDA 8.0+ CUDNN +VS 2015 +Python 3.5 + Caffe
1、安裝CUDA
安裝還是非常簡單的 直接點安裝就可以了,注意在這里要選擇自定義,而后勾選所有組件下載:

全部勾選:

而后一直next就可以了,安裝過程中可能會出現黑屏是正常的

官方教程上面是CUDA 7.5或8.0 此處使用的是VS2015,就只能使用8.0了(注:電腦的顯卡必須是英偉達才可以使用,如果不是只能使用CPU加速了,CPU就簡單多了,網上有教程,顯卡較弱也建議使用CPU)
附:CUDA 8.0 官方下載地址:https://developer.nvidia.com/cuda-80-ga2-download-archive
官方地址可能會經常失敗,故而附上我自己下載的軟件:鏈接:https://pan.baidu.com/s/1hmxiMi8C60M2F4AVOmSIUA 密碼:f1a6(里面有CUDA 8.0及9.0)

那么如何知道自己的電腦支持哪個CUDA的版本呢 首先打開自己的NVIDIA控制面板,而后打開幫助——>選擇系統信息,如下圖:(若不知道哪里可以在小娜那里搜索就可以了)

而后點擊組件就可以看見了,CUDA后面的數字就是支持最新的版本信息(可向下兼容)

2、安裝cuDNN
從nVidia網站下載相應的版本,此處我下載的是CUDA 8.0相應的版本。需要注冊一個賬號,注意需要翻牆才能夠注冊,否則會很慢很慢(若不想科學上網我附上一個CUDA 9.1 及8.0 相應的版本鏈接:https://pan.baidu.com/s/1ZrP72xkaU2DvULWogGZUsQ 密碼:p2jx)

將下載的zip解包到%CUDA_PATH%(由CUDA安裝程序設置的環境變量,在安裝CUDA時會自動設置環境變量),一般是默認路徑是:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1
3、安裝Python(最好使用python3.5,其他版本可能會出錯)
(1)使用Miniconda安裝:
如果本機沒安裝python,可以下載Miniconda 2.7 x64-bit 或者3.5 x64 bit,從官方網址:http://conda.pydata.org/miniconda.html選擇下載,默認配置路徑安裝即可,並且要為python添加環境變量。
同時需要以管理員權限安裝numpy、scipy、matplotlib、scikit-image、protobuf包,安裝命令如下:
conda install --yes numpy scipy matplotlib scikit-image pip
pip install protobuf
(2)使用Anacon安裝(推薦,但是windows會可能出現一個安裝時不能創建菜單的問題,這個問題至今都沒有解決,如果誰解決了可以給我留言,謝謝)
安裝python或者使用Anacon也可以,下載鏈接為:https://www.anaconda.com/download/ ,同時添加到環境變量
因Anaconda中附有numpy、scipy、matplotlib、scikit-image、protobuf,可以不用再安裝這些
若出現問題,可參考:https://docs.anaconda.com/anaconda/user-guide/troubleshooting
(3)使用官方python安裝(最少出現解決不了的錯誤)
官方下載鏈接:https://www.python.org/downloads/windows/(下載64位,此處下載的是python 3.5 x64)安裝時記得將添加環境變量的勾上

安裝python后需要下載:numpy、scipy、matplotlib、scikit-image、protobuf
進入cmd中直接輸入:
pip install numpy (下載numpy時提示pip版本必須是10才可以,故而輸入:python -m pip install --upgrade pip 就可以更新pip)

pip install scipy
pip install scikit-image
pip install matplotlib
pip install protobuf
4、安裝visual studio
版本為2013或2015,官方鏈接為:https://my.visualstudio.com/Downloads?q=visual%20studio%202015&wt.mc_id=o~msft~vscom~older-downloads
若嫌麻煩可以使用我下載的VS2015,同樣是官方版本:鏈接:https://pan.baidu.com/s/177dIZw7e8sBTrjw-EX-lIA 密碼:ju8y
5、Cmake安裝
安裝比較簡單,附下載鏈接:https://cmake.org/download/
6、Matlab安裝(python和matlab二選一即可 我使用的是python)
安裝教程及破解版地址下載鏈接:https://blog.csdn.net/gisboygogogo/article/details/76793803
7、安裝及配置Caffe
首先先上官方教程的鏈接http://caffe.berkeleyvision.org/installation.html#hardware
然后是windows的下載包及教程https://github.com/BVLC/caffe/tree/windows
最方便的則是使用cmd進行安裝配置,首先安裝官方教程輸入以下命令:
C:\ Projects > git clone https://github.com/BVLC/caffe.git C:\ Projects > cd caffe C:\ Projects \ caffe > git checkout windows ::編輯build_win.cmd中的任何選項以滿足您的需要 C:\ Projects \ caffe > scripts \ build_win.cmd
可以在自己打算安裝Caffe的文件夾中輸入以下命令行,不一定非得在C盤中輸入,要根據直接的安裝路徑
經過漫長的等待(視電腦性能而定,我的用時15分鍾),電腦終於執行完畢,成功后打開caffe\scripts\build應該能看見可由VS編譯的Caffe.sln工程文件。
然而在執行C:\ Projects \ caffe > scripts \ build_win.cmd 時我收集了可能會出現以下錯誤:
(1)'"E:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\..\..\VC\vcvarsall.bat"' 不是內部或外部命令,也不是 可運行的程序 或批處理文件。 -- The C compiler identification is unknown -- The CXX compiler identification is unknown CMake Error at CMakeLists.txt:18 (project): No CMAKE_C_COMPILER could be found. CMake Error at CMakeLists.txt:18 (project): No CMAKE_CXX_COMPILER could be found.

(2)提示:

使用notepad++打開caffe\scripts下的build_win.cmd進行修改:
(1)MSVC_VERSION 根據你VS項目版本來,14對應VS2015的項目,12對應VS2013的項目
(2)只使用CPU的將 CPU_ONLY 改為1
(3)PYTHON_VERSION 根據你本機版本來,我是2.7所以是2,3.5就是3
(4)CUDA_ARCH_NAME 是CUDA的架構名稱,可選值有:Kepler,Fermi,Maxwell,Pascal,Manual,All,Auto,Auto是自動檢測最優值
(5)WITH_NINJA 要設為0,你不會用到ninja編譯器來進行編譯
(6)改完后去scripts\build中把 CMakeCache.txt 文件刪掉。因為這里面記錄的是用Ninja來編譯的,不刪除的話不能用VS來編譯
(7)在多個 GPU 上運行 Caffe 需要使用 NVIDIA NCCL
以下是我的修改:

注:根據官方教程,若安裝了CUDNN,則
要使用cuDNN,最簡單的方法是將cuda文件夾的內容復制到CUDA工具包安裝目錄中。
例如,如果您安裝了CUDA 8.0並下載了cudnn-8.0-windows10-x64-v5.1.zip,則應該將該cuda目錄的內容復制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0。
或者,您可以定義CUDNN_ROOT緩存變量以指向解壓縮cuDNN文件的位置,例如C:/Projects/caffe/cudnn-8.0-windows10-x64-v5.1/cuda。
或者在scripts/build_win.cmd中添加,如下(根據自己的安裝路徑改變):

而后刪除caffe\scripts\build文件夾,重新開始
(3)提示出現:The Windows SDK version 8.1 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution".
解決方法:在網上單獨下載一個windows SDK 8.1,或者打開VS2015安裝包修改選項下載工具windows SDK8.1
(4)錯誤CMake Error at cmake/WindowsDownloadPrebuiltDependencies.cmake:40(message):
Could not find url for MSVC version = 1910 and Python version = 2.7.
解決方法:這是由於使用的python版本問題,不能使用最新版本,必須使用python3.5,重新安裝即可
(5)錯誤:無法將“script”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括路徑,請確保路徑正確,然后再試一次。
方法:可以直接進入script文件夾,而后輸入:.\build_win.cmd 即可
(6)錯誤:一個名為“libraries_v140_x64_py27_1.1.0.tar.bz2”的依賴包無法下載成功
方法:打開https://github.com/willyd/caffe-builder/releases/download將該包下載下來,由於之前雖然下載的代碼執行失敗了可還是為我們建立好了存放依賴庫的文件夾,我們把對應文件下載好后解壓放進去(默認是在C盤當前用戶目錄下的dependencies文件夾,download存放下載文件下來的文件,libraries_v140_x64_py27_1.1.0文件夾下則是存放該文件解壓后的library包) ,手動修改cmake文件夾下WindowsDownloadPrebuiltDependencies.cmake文件和scripts文件夾下download_prebuilt_dependencies.py文件代碼,讓程序繞過文件中下載和解壓的部分直接編譯
8、python接口
(1)安裝Anaconda或Miniconda版本
打開Anaconda下的Anaconda Prompt,cmd輸入:
conda config --add channels conda-forge conda config --add channels willyd
並安裝以下軟件包:
conda install --yes cmake ninja numpy scipy protobuf==3.1.0 six scikit-image pyyaml pydotplus graphviz
並將caffe/python下的caffe文件復制到 python安裝路徑下的lib/site-packages下
在cmd中輸入python,而后執行 import caffe ,若沒有錯誤,則配置成功
(2)安裝python版本
打開cmd輸入:
pip install --yes cmake ninja numpy scipy protobuf==3.1.0 six scikit-image pyyaml pydotplus graphviz
安裝軟件,並將caffe/python下的caffe文件復制到 python安裝路徑下的lib/site-packages下
在cmd中輸入python,而后執行 import caffe ,若沒有錯誤,則配置成功
9、VS編譯caffe
在build目錄下將Caffe.sIn 文件打開

注:若使用VS2015打開Caffe.sIn 文件時彈出:
未能正確加載python tools package包
解決方法:打開路徑 C:\Users\用戶名\AppData\Roaming\Microsoft\VisualStudio\14.0(若沒有則自己創建),而后新建文件:ActivityLog.xml ,並將以下代碼復制進去:
<entry>
<record>257</record>
<time>2010/05/02 20:36:35.490</time>
<type>Error</type>
<source>VisualStudio</source>
<description>CreateInstance failed for package [Microsoft.Data.Entity.Design.BootstrapPackage.BootstrapPackage, Microsoft.Data.Entity.Design.BootstrapPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]</description>
<guid>{7A4E8D96-5D5B-4415-9FAB-D6DCC56F47FB}</guid>
<hr>80070002</hr>
<errorinfo>Could not load file or assembly 'Microsoft.Data.Entity.Design.BootstrapPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.</errorinfo>
</entry>
<entry>
<record>258</record>
<time>2010/05/02 20:36:35.513</time>
<type>Error</type>
<source>VisualStudio</source>
<description>End package load [Microsoft.Data.Entity.Design.BootstrapPackage.BootstrapPackage, Microsoft.Data.Entity.Design.BootstrapPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]</description>
<guid>{7A4E8D96-5D5B-4415-9FAB-D6DCC56F47FB}</guid>
<hr>80004005 - E_FAIL</hr>
<errorinfo>Could not load file or assembly 'Microsoft.Data.Entity.Design.BootstrapPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.</errorinfo>
</entry>
然后再打開VS2015就沒有報錯了。
而后在VS中右鍵CMakeTargets底下的All_build生成,注意,此時必須在release,x64下生成(在VS左上角設置)

若生成成功沒有報錯就表示大功告成啦!
完成后可以使用mnist檢測caffe是否有效,具體教程可見我的下一篇
