在Windows下編譯Caffe與其Python介面

小苗苗X發表於2016-04-11

因為畢設的原因,最近一直在研究Caffe,按照網上自己搭建Caffe的教程無果後,最終參考了happynear與蝦米ning的帖子,但是其中遺漏了一些細節。所以特意寫一篇文章來記錄自己搭建Caffe的過程。

我參考的兩個帖子:

搭建Caffe參考happynear的帖子如何快糙好猛地在Windows下編譯CAFFE並使用其matlab和python介面

編譯Python介面參考蝦米ning的帖子在windows下編譯caffe的python介面(CPU模式)

我的編譯過程:

零:環境

電腦使用WIN10系統,64位,CPU是Intel整合顯示卡,沒有GPU,所以Caffe使用的都是CPU模式。編譯平臺為VS2013,另外安裝了Anaconda2.4(Python2.7)。

一:搭建Caffe

1.下載happynear的Caffe原始碼https://www.github.com/happynear/caffe-windows,第三方庫3rdparty檔案http://pan.baidu.com/s/1bSzvKa

2.將3rdparty檔案(bin,include,lib)解壓至caffe-windows(假設Caffe原始碼解壓後的資料夾名為caffe-windows)中的3rdparty資料夾中,並將3rdparty/bin資料夾所在路徑新增到環境變數中,使程式可以找到這些第三方庫

3.雙擊.src/caffe/proto/extract_proto.bat批處理檔案來生成caffe.pb.hcaffe.pb.cc兩個c++檔案,和caffe_pb2.py這個Python使用的檔案。

4.開啟./build_cpu_only/Mainbuilder.sln,點選上方工具欄中的綠色三角編譯。

二:測試Caffe

1.到http://pan.baidu.com/s/1mgl9ndu下載已經轉換好的MINIST的leveldb檔案,解壓至./examples/mnist資料夾中。

2.將./examples/mnist/lenet_solver.prototxt檔案中的最後一行solver_mode改為CPU。

3.執行caffe-windows目錄下run_mnist.bat即可開始訓練,訓練日誌會儲存在./log資料夾中,以INFO開頭。

三:編譯Python介面

1.在Mainbuilder.sln中選擇pycaffe專案,右鍵選擇屬性修改兩個地方。

2.把C/C++的附加包含目錄中python預設路徑(預設是D:\Python27)修改為你自己Python所在的路徑。我的Anaconda安裝在D:\Anaconda2,所以將附加依賴項中的路徑改為include與Lib在Anaconda2中的路徑即可。

3.將連結-常規-附加庫目錄中libs的預設路徑改為在Anaconda2中的路徑。

4.右鍵選擇pycaffe專案,點選build編譯。編譯成功會在caffe-windows\python\caffe中生成_caffe.pyd檔案。

5.安裝google的protobuf,直接在cmd中使用pip install protobuf安裝。

6.將這個caffe資料夾複製到D:\Anaconda2\Lib\site-packages中,然後嘗試使用import caffe。import可能會出現typeerror:__init__()got an unexpected keyword argument ‘syntax'這樣的錯誤,解決的辦法是在D:\Anaconda2\Lib\site-packages\caffe\proto中選擇caffe_pb2.py檔案,將檔案中所有含有syntax的語句註釋掉即可。


相關文章