Win10+VS2015 caffe環境搭建(極其詳細)
caffe是好用,可是配置其環境實在是太痛苦了,依賴的庫很多不說,在VS上編譯還各種報錯,你能想象那種被一百多個紅色提示所籠罩的恐懼。
且網上很多教程是VS2013環境下編譯的,問人很多也說讓我把15解除安裝了裝13,我的答案是:偏不
記下這個艱難的過程,萬一還要再來一次呢……
Attention:
本文使用的caffe windows環境配置為:
VS2015+CMake3.7.2+Python2.7+Anaconda2-4.3.1(X64)+CUDA8.0(x64)+cuDNN v5.1(x64)
符合Caffe官網上的環境要求:
一、準備工作
不要急著clone程式碼,把改下的下好該安裝的安裝好,磨刀不誤砍柴工,不然以後編譯各種報錯夠你受的。
1.下載Anaconda,以後直接conda安裝python包很方便
我這裡用的是Anaconda2-4.3.1-Windows-x86_64版本。
https://www.continuum.io/downloads
2.Cmake,一個跨平臺的安裝(編譯)工具,我用的是cmake-3.8.0-win64-x64。
https://cmake.org/download/
為什麼下V5.1不下最新的V6?看清楚下面這段話
如果你下載了V6,那麼恭喜你,你將會得到大約124個編譯錯誤(笑)
改下的差不多了,python都有的伐,上面的包下載/解壓/安裝好後最好都配置到環境變數中去,不然會編譯出錯。
二、clone程式碼&使用cmake編譯專案
聽官網的話,我們如下操作:
一切都很順利直到最後一步
> scripts\build_win.cmd
不要方,跟著我使用些奇淫技巧同官方文件硬懟
首先,用notepad++開啟caffe\scripts下的build_win.cmd檔案開始改配置(記得備份),這個檔案的作用是對cmake進行一些配置,然後執行cmake來構建整個caffe工程:
以下是我本機配置,可做參考
如果安裝了CUDNN的話,需要將此安裝目錄包含進來
因為我電腦上沒有DEFINE了APPVEYOR,就直接從else後面開始看了,AppVeyor 這玩意兒好像是用來實現實現 GitHub 託管專案自動化整合的
注:
(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
然後再執行
> scripts\build_win.cmd
發現還是報錯,一個名為“libraries_v140_x64_py27_1.1.0.tar.bz2”的依賴包無法下載成功。(我本地使用SS翻牆後執行這段程式碼還是無法下載。似乎是因為資源是放在AWS雲伺服器上的)
於是,我們使用點小技巧
2.手動去這個地址上把包下載下來
3.由於之前雖然下載的程式碼執行失敗了可還是為我們建立好了存放依賴庫的資料夾,我們把對應檔案下載好後解壓放進去(預設是在C盤當前使用者目錄下的dependencies資料夾,download存放下載檔案下來的檔案,libraries_v140_x64_py27_1.1.0資料夾下則是存放該檔案解壓後的library包)
4.手動修改cmake資料夾下WindowsDownloadPrebuiltDependencies.cmake檔案和scripts資料夾下download_prebuilt_dependencies.py檔案程式碼,讓程式繞過檔案中下載和解壓的部分直接編譯
5.再執行
> scripts\build_win.cmd
經過大約半小時的等待(視計算機效能而定),cmake應該就將Caffe.sln工程編譯好了
三、修改Caffe.sln配置,使用VS2015編譯專案
1.將caffe/windows底下的一個配置檔案CommonSettings.props.example複製出來重新命名為CommonSettings.props。
再用notepad++開啟更改下cuda資料夾的路徑及版本
2.在build目錄下我們用VS2015將Caffe專案開啟
3.右鍵CMakeTargets底下的All_build生成
OK,到此為止Caffe windows環境搭建完成並編譯成功,準備開始跑mnist的訓練集吧!