1. 程式人生 > >(全面 經典 管用)Windows7 64位+Cuda6.5+vs2012 的caffe配置歷程

(全面 經典 管用)Windows7 64位+Cuda6.5+vs2012 的caffe配置歷程

Cuda6.5安裝

  備註:已經裝好cuda的請略過,往下看。
  記得沒有VS2012的一定要先裝VS。否則:安裝後開啟VS2012新建專案不顯示NIVIDA解決方案。記住記住記住!重要的事情說三遍!
第一步:
  安裝檔案的下載,直接去官網就下載就可以。現在有cuda7.0了。
cuda
  直接雙擊exe檔案,彈出後,首先會監測一下你的執行環境,如果找不到Nividia對應的顯示卡裝置,他會提示你是否要繼續安裝。這裡面nvidia的顯示卡,最起碼也是8800以上的,要不是無法編寫CUDA的。千萬不要電腦上面是intel或者AMD的顯示卡,卻要編寫cuda,除非你有錢買一個cuda-x86這個編譯器。
第二步:


  和正常安裝軟體步驟一樣,首先彈出的對話方塊直接OK就行,這個是CUDA的一些安裝檔案,位置在哪無所謂。會監測你的電腦是否支援cuda的搭建,接下來一步步的走。
第三步:
這裡寫圖片描述

  博主強烈推薦選擇自定義安裝
  博主當初就因為選了精簡安裝,沒安裝上SDK。安裝的位置,推薦自己建三個好找的資料夾,不用他預設的路徑,免得稍後配置環境變數麻煩。
這裡寫圖片描述
  下一步直接安裝就行,等待過程漫長,喝杯茶吧
第四步:
  接下來配置cuda的環境變數,預設安裝好後,他會自動幫你設定好2個環境變數,但是最好還自己新增下其他的幾個,方便日後配置vs使用。有兩個是預設的環境變數,只需新增下面四個即可:


CUDA_BIN_PATH  %CUDA_PATH%\bin

CUDA_LIB_PATH  %CUDA_PATH%\lib\Win64

CUDA_SDK_BIN  %CUDA_SDK_PATH%\bin\Win64

CUDA_SDK_LIB  %CUDA_SDK_PATH%\common\lib\Win64

CUDA_SDK_PATH  C:\cuda\cudasdk\common

第五步:
  檢測Cuda的安裝成功與否。
  首先啟動cmd DOS命令視窗(博主的cuda安裝到c:\cuda資料夾下)
  預設進來的是c:\users\Admistrator>路徑,輸入 cd .. 兩次,來到c:目錄下輸入dir 找到安裝的cuda資料夾
  還是直接上圖吧,方便清晰:
  這裡寫圖片描述


  這裡寫圖片描述
  這裡寫圖片描述
  至此,萬里長征第一項基本成功了。(如果沒有安裝成功,重新再裝下)
最後一步:
  (這段偷懶直接複製的,圖裡面的cuda5.5自己當作cuda6.5就好)

VS配置

  1.1 啟動VS2012
  1.2 新建一個win32的控制檯工程,空的。
這裡寫圖片描述
這裡寫圖片描述
 1.3 右鍵原始檔資料夾->新建項->選擇cuda c/c++->新建一個以.cu結尾的檔案 
這裡寫圖片描述
1.4 右鍵工程-》生成自定義-》選擇cuda生成
這裡寫圖片描述
  1.5 右鍵test.cu-》屬性-》選擇cuda c/c++編譯器
這裡寫圖片描述
  1.6 右鍵工程-》屬性-》連結器-》常規-》附加庫目錄-》新增目錄 $(CUDA_PATH_V5_5)\lib\$(Platform);
這裡寫圖片描述
  1.7 在連結器-》輸入中新增 cudart.lib
這裡寫圖片描述

  1.8 在工具-》選項-》文字編輯器-》副檔名-》新增cu \cuh兩個副檔名
這裡寫圖片描述

  至此,編譯環境的相關搭建就完成了。

分——————————–割———————————線
分——————————–割———————————線

Caffe安裝

  老規矩,按照步驟慢慢來,麵包會有的!

第一步:
  首先去http://download.csdn.net/detail/yangkequn/8108035下載,這個Caffe裡面有很多的lib,是已經編譯好了的。CSDN沒有積分的可以私信博主,給你發郵箱去!
  然後去https://github.com/niuzhiheng/caffe下載原作者的Caffe!
  為什麼要下載兩個Caffe工程呢?因為1中的Caffe雖然是編好的,有各種lib和include的,但是沒有%caffe_path/caffe/build/MSVCmex(其中%caffe_path為自己的路徑)這個工程,這個工程用來編譯Matlab介面的。所以,下載2的caffe就是要這個工程檔案。

第二步:
  不拐彎抹角了,直接正確的修改有以下幾項(血淚史):
  1) 在vs2012的工程中,matcaffe.cpp中的這一行init_key=random(); // NOLINT(caffe/random_fn)編譯過程中出錯了,改成了init_key=rand(); // NOLINT(caffe/random_fn) 就可以正常編譯了。
  2) CUDA編譯報錯問題:error MSB3721這個是因為編譯的路徑中存在中文路徑,只需要把中文路徑改成英文路徑即可。
  3) 編譯出錯:提示找不到各種.h檔案。這是因為你沒有把include的路徑新增到附加包含目錄中。
這裡寫圖片描述
  這樣找不到標頭檔案這個問題就解決了。
  
  4)出現error C2977: “std::tuple”: 模板 引數太多 g:\caffe\caffe for windows vs2012\src\gtest\gtest.h的類似的錯誤,如下圖:
這裡寫圖片描述
  兩種解決辦法:
  第一種開啟“解決方案資源管理器”,右鍵開啟專案“屬性”,在C/C++ –> “前處理器”–> “預處理定義”中增加以下行即可:
_VARIADIC_MAX=10;
  另外一種,用程式碼編譯器開啟G:\Caffe\Caffe For Windows\src\gtest資料夾下的gtest.h,增加一下行即可:

#define _VARIADIC_MAX=10;

  5)生成解決方案停止在caffe.pb.h remains the same as before這句話不動了。其實這個不是錯誤,是人家還在編譯中,需要等待,只要不報錯,就等待就行。
  6)又一個錯誤error C1083: 無法開啟包括檔案:“mex.h”: No such file or directory g:\caffe\caffe for windows vs2012\matlab\caffe\matcaffe.cpp
http://blog.sina.com.cn/s/blog_7e2e98ad0101hd3c.html

  檢視上面這個部落格 ,新增相關路徑。上幾個圖:注意圖中黑體部分
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
  
  差點忘了:記得把Matlab的安裝目錄 和bin/include新增到環境變數中去,將caffe for windows下的將3rdparty/bin資料夾加到環境變數的PATH中。
  7)又一個錯誤error LNK2001: 無法解析的外部符號 “__declspec(dllimport) public這個錯誤應該是依賴庫的問題,上面那些都配置好理應沒有問題的。查資料查資料,最後也是最重要的,記得將平臺改為X64的。許多文件中沒有指出來!
這裡寫圖片描述
這裡寫圖片描述
  注意字符集:使用Unicode字符集

  再大膽並且抱有希望的重新生成解決方案一次吧!
這裡寫圖片描述

  終於終於OK了!編譯了36分鐘!

matlab呼叫caffe介面

  編譯完成後需要將caffe-windows\bin中所有的dll 放到matlab\caffe中,編譯完成後並沒有把所有的dll都移入。

  編譯完成後:測試
  進入 matlab2013b,
  輸入 im = imread(‘peppers.png’);
     [scores, maxlabel] = matcaffe_demo(im,1);
  
 如果提示錯誤,可能是在examples/imagent沒有訓練集檔案caffe_reference_imagenet_model,網上能夠下載到。
  在linux系統下,可以執行get_caffe_reference_imagenet_model.sh下載。但是windows系統,這裡只能手動下載。
  網址 http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel

——————————————————————————————

  至此本文結束了,如果有什麼安裝過程中遇到的問題可以私信博主。另外轉載請註明出處,雖然網上安裝教程一大把,但是如果都那麼順利,我也沒必要寫這篇部落格了。

重大更新

  上述版本caffe是最早的,只能跑demo的版本。下面是新版本的安裝教程,推薦微軟的版本!對了必須是VS2013版本的!