實踐詳細篇-Windows下使用VS2015編譯安裝Caffe環境(CPU ONLY)

學習深度學習背景html

最近在作一款搶票軟件,因爲12306常常檢測帳號狀態,搶票搶着搶着就須要從新登陸了,而後登陸是須要驗證碼的。因此我最開始是想到了使用java基於感知哈希算法pHash作類似度匹配識別,結果測試發現精確度低的可憐。這裏簡單的說下邏輯。12306驗證碼是由8張小圖片生成拼接在一塊兒的。每次請求都是在服務器後臺進行隨機抽取圖片製做驗證碼。而每一張小圖的尺寸大小都是相同的。將圖片使用java切割後生成8張小圖。在進行pHash算法匹配圖片類似度。結果識別度很是低了,就不必說繼續作往下的邏輯,好比訓練標籤。作匹配分類圖片等等。因此我就想到了如今的深度學習中的圖像識別分類,因爲零基礎接觸,安裝前我也是借閱了不少相關的文章以及PDF。歷經幾天的學習以及安裝,皇天不負有心人一路磕磕碰碰總算是把caffe安裝好,因此這篇文章比較適合剛接觸的新人。授人以魚不如授人以漁 編譯好的caffe我就不發了。 我總結這篇教程只是爲了讓哪些和我同樣剛接觸caffe的朋友能順利的安裝好這個NB的東西。java

一:環境準備

安裝前言:該文章適合新人閱讀,因此安裝步驟會有點囉嗦,其次就是咱們這裏使用的是CPU來訓練,因此是不用安裝​Cuda和CuDNN的。python

一、安裝gitlinux

因爲這裏記錄的是使用Windows系統安裝,可是多數的操做仍是須要使用linux命令執行。因此爲了便於執行linux命令須要先git。git

保持默認選項點擊next,因爲我是我的使用,因此選擇第二項:Use Git from the Windows Command Prompt 接着繼續默認選項走。github

安裝完成後記得檢測是否可用,確保萬一,可能會出現部分電腦出現環境變量未自動配置好。算法

如未出現配置好環境變量請自行配置:編程

在系統變量中找到Path並在後面添加:      C:\Program Files\Git\cmd;windows

二、安裝Visual Studio 2015(如下簡稱VS2015)服務器

下載地址+永久註冊碼

三、安裝CMake &版本>=3.4

3.1 下載地址Cmake( 3.11.1版本)

下載地址:https://download.csdn.net/download/u014714937/10375108 或 https://cmake.org/download/

下載完成後解壓出來:

3.2 配置環境變量 

一樣在系統變量中找到Path並在其後追加你的cmake解壓出來的路徑,個人電腦路徑是> D:\DeepLearning\cmake-3.11.1-win64-x64\bin

注意:如在git環境變量後並無用   ;  符號結尾記得手動在cmake追加前添加 ;

 3.3測試cmake

打開CDM>輸入cmake -version 如出現版本信息則表示環境變量配置成功

C:\Users\Administrator>cmake -version
cmake version 3.11.1

CMake suite maintained and supported by Kitware (kitware.com/cmake).

四、安裝Python

4.1 下載python

下載地址: https://download.csdn.net/download/u014714937/10375211

4.2 安裝python

安時候記得勾選"Add Python 3.6to PATH"表示對python環境變量的配置 若是沒有特別的需求話建議使用默認安裝:Install Now便可。

正常的話通常一分鐘左右就安裝好了

4.3測試python

4.4 安裝python其餘相關模塊

4.4.1 安裝 Anaconda

下載地址:https://www.anaconda.com/download/

Python 3.6 的下載Python 3.6 version版本,Python 2.7 的下載Python 2.7 version版本。

安裝時選擇用戶,如沒有特定需求建議全部用戶(All Users),選擇完路徑沒有特定需求一直下一步便可開始安裝。文件較大,解壓出來2個多G,安裝過程須要耐心等待幾分鐘。

安裝完成後出現一個是否安裝微軟快捷開發包。Install Microsoft VSCode 點擊進行安裝,安裝完成後點擊Skip便可。

4.4.2安裝pip 

 下載地址:https://pypi.org/project/pip/#files

下載完成以後,解壓到一個文件夾。這裏解壓後可能會出現的一個文件夾「dist」 而後這個文件夾裏面纔有一個壓縮包,若是出現這種狀況就須要解壓真實的這個壓縮包到目錄上

 

解壓完成後在當前目錄按住Shift+鼠標右鍵後點擊「在此處打開命令窗口」或用CMD控制檯進入解壓目錄並輸入:

python setup.py install

安裝失敗:

如輸入安裝命令出現,這種狀況的緣由是由於當前目錄下找不到這個執行命令,確認是不是在解壓出來的PIP文件主目錄下執行的

D:\DeepLearning\dist>python setup.py install
python: can't open file 'setup.py': [Errno 2] No such file or directory

D:\DeepLearning\dist>

安裝完成:

  

檢測安裝:

打開CDM輸入pip list 如出現版本信息則表示安裝成功

D:\DeepLearning\dist>pip list
Package    Version
---------- -------
pip        10.0.1
setuptools 28.8.0

4.4.3 安裝six : pip install six

D:\DeepLearning\dist>pip install six
Collecting six
  Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa
78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Installing collected packages: six
Successfully installed six-1.11.0

4.4.4安裝yaml: pip install pyyaml

D:\DeepLearning\dist>pip install pyyaml
Collecting pyyaml
  Downloading https://files.pythonhosted.org/packages/4a/85/db5a2df477072b2902b0
eb892feb37d88ac635d36245a72a6a69b23b383a/PyYAML-3.12.tar.gz (253kB)
    40% |█████████████                   | 102kB 195kB/s eta 0:00:0
    44% |██████████████▎                 | 112kB 286kB/s eta 0:00
    48% |███████████████▌                | 122kB 276kB/s eta 0:0
    52% |████████████████▉               | 133kB 273kB/s eta 0:
    56% |██████████████████▏             | 143kB 421kB/s eta
    60% |███████████████████▍            | 153kB 354kB/s eta
    64% |████████████████████▊           | 163kB 345kB/s et
    68% |██████████████████████          | 174kB 382kB/s e
    72% |███████████████████████▎        | 184kB 530kB/s
    76% |████████████████████████▋       | 194kB 536kB/
    80% |██████████████████████████      | 204kB 544kB
    84% |███████████████████████████▏    | 215kB 522
    89% |████████████████████████████▌   | 225kB 61
    93% |█████████████████████████████▉  | 235kB 7
    97% |███████████████████████████████ | 245kB
    100% |████████████████████████████████| 256k
B 1.6MB/s
Installing collected packages: pyyaml
  Running setup.py install for pyyaml ... done
Successfully installed pyyaml-3.12

  

4.4.5 安裝numpy: pip install numpy

 安裝過程可能會出現如下狀況:

THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have u
pdated the package versions, please update the hashes. Otherwise, examine the pa
ckage contents carefully; someone may have tampered with them.
    numpy from https://files.pythonhosted.org/packages/30/70/cd94a1655d082b8f024
b21af1eb13dd0f3035ffe78ff43d4ff9bb97baa5f/numpy-1.14.2-cp36-none-win_amd64.whl#s
ha256=6be6b0ca705321c178c9858e5ad5611af664bbdfae1df1541f938a840a103888:
        Expected sha256 6be6b0ca705321c178c9858e5ad5611af664bbdfae1df1541f938a84
0a103888
             Got        6e3df481acb4ee8249957a82771e7a23ab89368e7914bb131c368e83
b976f270

主要緣由:由於網速問題致使的,致使下載的文件不徹底出現不匹配的文件MD5

解決方法:從新執行該命令下載文件並安裝,多試幾回就行了。

 安裝完成:

Installing collected packages: numpy
Successfully installed numpy-1.14.2

以上全部事情準備好了就能夠開幹了。

五、下載caffe並編譯

5.1 下載caffe

小建議:咱們這裏使用的是caffe官網提供的版本,部分朋友使用的是微軟提供的windows版本 .如使用的是微軟提供的windows版本好像是在caffe根目錄下有一個windows文件夾,文件夾內容就是已經建立好caffe相關VS文件的,

因此可能在安裝,使用過程上有差別,建議是使用本身編譯安裝的版本。由於使用已經建立安裝好的caffe文件可能由於環境不一樣遇到某種未知問題。例以下載的caffe裏面建立好的VS文件是VS2013建立的並平臺版本(SKD)和本機安裝的有出入的話 反而會花更多的時間去調整配置。 

使用git命令下載 git clone https://github.com/BVLC/caffe.git 也能夠手動下載並解壓出來

$ git clone https://github.com/BVLC/caffe.git
Cloning into 'caffe'...
remote: Counting objects: 54253, done.
remote: Total 54253 (delta 0), reused 0 (delta 0), pack-reused 54253
Receiving objects: 100% (54253/54253), 62.60 MiB | 359.00 KiB/s, done.
Resolving deltas: 100% (36633/36633), done.

Administrator@STI5X9B683AVXOY MINGW64 /d/DeepLearning/caffe
$

初始目錄結構以下:

5.2 修改配置並執行建立caffe文件(這一步很重要)

經過caffe根目錄找到並進入scripts文件夾後找到build_win.cmd並進行編輯。

主要修改部分語句是從第7行~31行之間 。70~99行之間,具體修改請經過下面步驟決定。

修改7~31行的if語句(if裏面修改項描述同修改70~99行之間代碼邏輯):

修改70~99行之間

 對比能夠發現 if和else裏面的代碼大同小異,可是卻少了後面設置對應python中的Anaconda版本路徑這幾行代碼。默認文件是沒有這幾行代碼的,咱們須要手動複製if裏面修改玩的代碼至else代碼中,修改以下:

 

編輯主要修改的項是:

一、修改成CPU計算訓練  CPU_ONLY=1

二、修改對應的VS版本生成代碼 MSVC_VERSION=14     // 2013的VS版本則修改成12  2015的VS版本則修改成14

三、修改編譯方式,使用VS編譯 不使用NinJa編譯   WITH_NINJA=0    //這裏必定要設爲0。除非你想用ninja編譯器來進行編譯。 

四、修改對應的python版本 PYTHON_VERSION=3    //2.7的python版本要修改成2  若是是3.5版本的python修改成3 

五、修改python開發對應的Anaconda版本     //如第三項修改 PYTHON_VERSION 爲3 的話將按照以下修改 安裝的是python2.7的版本 那將修改EQU 2的記錄

if !PYTHON_VERSION! EQU 3 (
        set CONDA_ROOT=Anaconda3對應安裝的目錄地址
    )

注:以上修改帶有//描述的則須要經過計算機環境決定。

 5.3 進行建立caffe可執行的VS文件

當以上內容都修改完成後,咱們來運行build_win.cmd開始來建立VS執行文件。就是用於編譯的caffe文件。在caffe根目錄下的scripts目錄中Shift+鼠標右鍵打開「在此處打開命令窗口」 而後輸入start build_win.cmd。

第一次開車-(翻車了):

D:\DeepLearning\caffe\caffe\scripts>start build_win.cmd

  執行後貌似沒有成功。

'"D:\VisualStudio\Common7\Tools\..\..\VC\vcvarsall.bat"' 不是內部或外部命令,也
不是可運行的程序
或批處理文件。
CMake Error at CMakeLists.txt:18 (project):
  Failed to run MSBuild command:.......此處省略一萬字

出現了異常,什麼錯誤呢。又是一個皇天不負有心人啊,通過百般的測試發現是由於VS安裝環境的問題。像我以前安裝這個VS2015的時候由於不用開發C++相關的內容,因此我在安裝的時候選擇了自定義安裝並無勾選C++相關的編譯器以及「內褲」。

 

因此致使在編譯代碼的時候找不到C++相關的命令。找到問題了如何解決呢?方法很簡單,從新安裝VS開發工具便可。

不不不,別急,還有一種方案。可能你不知 VS安裝工具就是這麼強大,不用卸載從新安裝,它能夠像打補丁同樣,再從新打開安裝程序而後選擇你沒有安裝的功能進行安裝便可。將編程語言中的Visual C++所有勾選上在點擊下一步安裝便可,通常安裝這幾個項的話半個小時左右(因電腦性能決定)。

 萬事俱備只欠東風了,安裝好C++相關組件後咱們再次進行執行start build_win.cmd命令(注意:每次執行build_win.cmd 命令前記得清空build_win.cmd文件目錄下的build文件夾的內容).........

第二次開車-(翻車了):

系統找不到指定的驅動器。
系統找不到指定的驅動器。
此處省略一萬字.......============================================================
-- The C compiler identification is MSVC 19.0.24215.1
-- The CXX compiler identification is MSVC 19.0.24215.1
-- Check for working C compiler: D:/VisualStudio/VC/bin/x86_amd64/cl.exe
-- Check for working C compiler: D:/VisualStudio/VC/bin/x86_amd64/cl.exe -- work
s
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: D:/VisualStudio/VC/bin/x86_amd64/cl.exe
-- Check for working CXX compiler: D:/VisualStudio/VC/bin/x86_amd64/cl.exe -- wo
rks
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonInterp: D:/DeepLearning/Anaconda3/python.exe (found suitable vers
ion "3.6.4", minimum required is "2.7")
CMake Error at cmake/WindowsDownloadPrebuiltDependencies.cmake:40 (message):
  Could not find url for MSVC version = 1900 and Python version = 3.6.
Call Stack (most recent call first):
  CMakeLists.txt:77 (include)


-- Configuring incomplete, errors occurred!
See also "D:/DeepLearning/caffe/caffe/scripts/build/CMakeFiles/CMakeOutput.log".

ERROR: Configure failed

D:\DeepLearning\caffe\caffe\scripts>

貌似又失敗了,異常描述好像是由於python版本不一致致使的。因而乎我又安裝了Anaconda2版本並進行修改了文件build_win.cmd文件

 

將對應的python版本匹配對應版本的Anaconda

 :: Set python 2.7 with conda as the default python
    if !PYTHON_VERSION! EQU 2 (
        set CONDA_ROOT=D:\DeepLearning\Anaconda2 
    )
    :: Set python 3.5 with conda as the default python
    if !PYTHON_VERSION! EQU 3 (
        set CONDA_ROOT=D:\DeepLearning\Anaconda3
    )

  第三次開車-(翻車了):

-- Found PythonInterp: D:/DeepLearning/Anaconda3/python.exe (found suitable vers
ion "3.6.4", minimum required is "2.7")
CMake Error at cmake/WindowsDownloadPrebuiltDependencies.cmake:40 (message):
  Could not find url for MSVC version = 1900 and Python version = 3.6.
Call Stack (most recent call first):

  當我第三次翻車後我就在思考了,我是否是不適合這個牛逼的東西,可是沒辦法啊,既然上了高速了又豈能隨隨便便下高速。因而乎我又進行了修改,將build_win.cmd文件中的判斷python版本而後匹配對應Anaconda 都修改了爲匹配Anaconda2。因而乎....

      第四次開車-(飛起來了):

又是一個皇天不負有心人啊。成功了。

先看修改後的配置文件(記得if和else裏面都要修改),至於爲啥是這樣呢 我也母雞。。。多是個人配置或者環境致使的。按道理我配置的是python3.6的 應該Anaconda配置也要是3的版本纔對,可是我引用Anaconda3就是不經過,因此只能改成Anaconda2讓它經過先了,其次就是我在翻閱資料的時候看見有大佬說 若是說這裏安裝了Anaconda2/3都無法成功時還須要安裝Miniconda2,原文意思是說後面引用都是Miniconda須要安裝這個。可是我這裏本機測試是正常的,因此我是沒有安裝了,若是須要安裝的話經過這裏進行下載安裝,安裝界面和安裝Anaconda時選步是同樣的。下載地址:https://conda.io/miniconda.html :

    :: Set python 2.7 with conda as the default python
    if !PYTHON_VERSION! EQU 2 (
        set CONDA_ROOT=D:\DeepLearning\Anaconda2
    )
    :: Set python 3.5 with conda as the default python
    if !PYTHON_VERSION! EQU 3 (
        set CONDA_ROOT=D:\DeepLearning\Anaconda2
    )

  

而後你會發現控制檯正在默默的下載一個文件,下載的內容就是生成caffe項目時所需的依賴項。下載完成後自動生成Visual Studio對應版本的的sln文件。

如libraries_v140_x64_py27_1.1.0.tar.bz2文件出現下載失敗致使編譯失敗,可經過手動下載該文件而後丟入到待解壓目錄中並再從新執行build_win文件。

本文提供下載地址 or 官方下載地址。下載完成後複製該壓縮包並黏貼到 「C:\Users\Administrator\.caffe\dependencies\download」中,如用戶名有差別須要自行查找 好比「C:\Users\XXXXX\.caffe\dependencies\download」。

而後打開caffe根目錄\cmake\WindowsDownloadPrebuiltDependencies.cmake這個文件,把下載文件的部分代碼註釋掉:

而且打開 caffe根目錄\scripts\download_prebuilt_dependencies.py文件 註釋掉下載代碼:

如網絡狀態較好,未出行以上狀況咱們耐心的等待便可。........當依賴下載完成後就開始生成項目了。

通過耐心等待幾分鐘後至於生成完成了。

出現警告不用理會,咱們直接進入生成的文件夾進行打開caffe項目而後編譯。就是build_win.cmd文件目錄中的build文件夾。

進入這個文件夾後,裏面結構大體這樣,版本不一樣,生成的文件有細微差別。而後直接雙擊  Caffe.sln文件會自動使用VS打開的。

 5.4 進行編譯caffe

我翻譯資料的時候發現不少大佬說在生成解決方案的時候使用 Release 方式。而後平臺版本調整爲X64。使用Release和Debug的區別我就不在這裏說了。可是這裏編譯模式呢 不會直接影響對caffe的使用,因此Debug也是能夠的。

等待VS工具加載完項目後咱們點擊頂部菜單欄的 生成>生成解決方案 或經過右側項目欄也是能夠的。結果是同樣的。如編譯正常經過的話 控制檯打印信息以下:

此處省略一萬零一字
41>  -- Creating hardlink for opencv_imgcodecs310d.dll in D:/DeepLearning/caffe/caffe/scripts/build/test/Debug
41>  -- Failed to create hardlink D:/DeepLearning/caffe/caffe/scripts/build/test/Debug/opencv_imgcodecs310d.dll. Copying instead.
41>  -- Copying opencv_imgcodecs310d.dll to D:/DeepLearning/caffe/caffe/scripts/build/test/Debug
41>  -- Creating hardlink for opencv_imgproc310d.dll in D:/DeepLearning/caffe/caffe/scripts/build/test/Debug
41>  -- Failed to create hardlink D:/DeepLearning/caffe/caffe/scripts/build/test/Debug/opencv_imgproc310d.dll. Copying instead.
41>  -- Copying opencv_imgproc310d.dll to D:/DeepLearning/caffe/caffe/scripts/build/test/Debug
41>  -- Creating hardlink for python27.dll in D:/DeepLearning/caffe/caffe/scripts/build/test/Debug
45>------ 已跳過生成: 項目: runtest, 配置: Debug x64 ------
45>沒有爲此解決方案配置選中要生成的項目 
========== 生成: 成功 40 個,失敗 0 個,最新 0 個,跳過 5 個 ==========
相關文章
相關標籤/搜索