CAFFE學習筆記(三)在VS2013下生成需要的exe文件


如我們所知,CAFFE_ROOT下有一個文件夾叫tools,里面中有許多cpp文件,它們各自有其不同的功能。但是很顯然,當我們要完成某樣工作時,我們是不能直接用cpp文件的,只能用exe文件。如何利用這些cpp文件生成exe文件呢?這就是本次博客的主題。請記住,一大堆繁瑣的配置不是目的,我們的目標是成功compile和build文件夾tools中的cpp文件,以生成所需要的exe文件。

關於如何配置,給出一個不錯的參考文件:《windows+caffe+vs2013+cuda6.5配置記錄》。

沒錯就是它。之所以說這個寫得不錯,是因為作者真心寫得非常詳細,基本上一路照他說的做就可以了。

1 與參考文件的不同之處

1、一些名稱上的變化

參考文件給出的一些文件名稱、環境變量名等可能與你計算機中的不一樣,拿我自己的為例:

(1)CUDA_PATH_V6_5

我這里安裝的是cuda7.0,所以這里面凡是寫CUDA_PATH_V6_5的應該統統改成CUDA_PATH_V7_0。

(2)BOOST_1_56

caffe壓縮包解壓后,打開VS的“項目→屬性→VC++目錄→包含目錄”,可以發現給出的是“BOOST_1_56_0”,因此在設置環境變量時,應該保持一致,寫成“BOOST_1_56_0”。

2、一些與參考文件不同之處

(1)原文3.4.3里“編譯./src/util中的文件”把cu文件也添加進去了,其實不必添加cu文件,把cpp裝載進去就好。

(2)原文中“在db.cpp中作如下修改...CHECK_EQ”這一步都去掉,不知道是不是會有什么不好的影響。

 

2 怎么生成exe文件?

(1)對caffe壓縮包解壓后,由於“項目→屬性”中給出的是相對路徑,所以基本上不需要做什么變更,保持原樣就好。解壓后得到的文件夾里是這樣的:

 

雙擊Caffe.sln,即可進入VS2013界面。

(2)進入后記得把正上方Debug旁邊的win32改成x64,否則里面的每一個源文件都無法編譯:

 

如果各源文件上方的#include文件打波浪線了,則說明包含文件路徑沒有設置好;或者包含路徑設置好了,卻沒有把上圖的win32改成x64。

(3)現在VS2013的左邊欄中的內容如圖所示。配置了半天,我們要做什么用,怎么用呢?其關鍵就在於文件夾“tools”!

 

在tools中一次只能放一個源文件,該源文件擁有着“main”函數,也就是整個程序的入口。在不同的場合,我們具有不同的需求,也就是說一次性tools文件夾內只允許有一個源文件。比如當我們想跑mnist時,該文件夾內就載入caffe.cpp;如果想要將自己的圖像數據轉成leveldb格式,則該文件夾內就載入convert_imageset.cpp。在CAFFE_ROOT\tools中提供了多個這樣的源文件,可按需取用。

 

當build完畢后,在CAFFE_ROOT\x64\Debug中將會出現一個Caffe.exe文件,這就是可執行文件。在很多腳本文件里需要設置可執行文件的路徑,指的就是這個可執行文件。

 

(4)當生成caffe.cpp的可執行文件后,如果再往tools文件夾中載入第二個cpp文件(如convert_imageset.cpp)並build,則當前Caffe.exe的內容(即caffe.cpp的內容)將會被抹除掉。一個好的方法就是先給Caffe.exe重命名一下(比如改名成total.exe)然后再build新的cpp文件,這樣就可以把兩個可執行文件都保留下來了。

 

2016.5.12

by 悠望南山


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM