Ubuntu16.04-x64安裝caffe(僅CPU)并測(cè)試
Ubuntu16.04-x64安裝caffe(僅CPU)并測(cè)試
Caffe作為深度學(xué)習(xí)中框架之一,在圖像處理,機(jī)器視覺(jué)方面受到廣泛的應(yīng)用。但是在caffe的安裝過(guò)程中遇到諸多問(wèn)題。在此,我們將基本流程以及經(jīng)常會(huì)遇到的問(wèn)題記錄下來(lái),供大家使用。
?????? 我們使用的安裝環(huán)境是騰訊云主機(jī),配置如圖,類(lèi)似的配置也可以按照此教程進(jìn)行安裝。由于云主機(jī)內(nèi)存受限,無(wú)法正常運(yùn)轉(zhuǎn)桌面系統(tǒng),所以筆者所在的小組選擇使用SSH遠(yuǎn)程連接主機(jī),推薦大家使用putty或者secureCRT進(jìn)行遠(yuǎn)程主機(jī)控制,后者支持拷貝和粘貼,所以筆者更推薦后者。
?
1.?遠(yuǎn)程主機(jī)(連接過(guò)程忽略),如圖所示
2.?通過(guò)下面的命令安裝protobuf,leveldb,snappy,opencv,hdf5,boost依賴(lài)庫(kù),其中最需要注意的是hdf5。兩條安裝語(yǔ)句分開(kāi)執(zhí)行
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-devlibopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
等待大約5分鐘,如果安裝過(guò)程沒(méi)有出現(xiàn)紅色字體的error出現(xiàn),則證明安裝成功,網(wǎng)絡(luò)情況比較好的情況下時(shí)間會(huì)短一些,本地主機(jī)一般時(shí)間會(huì)長(zhǎng)一些。
3.???接著安裝BLAS庫(kù),
sudo apt-get install libatlas-base-dev
點(diǎn)擊回車(chē),或者輸入“Y”后按回車(chē)
安裝成功。
4.之后是gflags,glog和lmdb,
sudo apt-getinstall libgflags-dev libgoogle-glog-dev liblmdb-dev
5.下載caffe源碼
git clone https://github.com/BVLC/caffe.git
約30秒,下載完成,60M左右。在網(wǎng)絡(luò)狀況不好的情況下時(shí)間會(huì)相應(yīng)長(zhǎng)很多,并且可能會(huì)產(chǎn)生下載中斷,可以配置網(wǎng)絡(luò)代理來(lái)提高下載速度。
6.切換到caffe根目錄,將Makefile.config.example復(fù)制一份并命名為Makefile.config。由于我們?cè)谠浦鳈C(jī)只使用CPU,所以需要修改Makefile.config文件中的配置。然后,需要配置hdf5.h的路徑。
?????? cd caffe
?????? cpMakefile.config.example Makefile.config
然后修改Makefile.config,桌面版可以使用gedit編輯器,非桌面版可以使用vi編輯器。
進(jìn)入vi編輯器
按下i或者a按鈕,進(jìn)入編輯模式
修改如下部分
INCLUDE_DIRS := $(PYTHON_INCLUDE)/usr/local/include /usr/include/hdf5/serial/
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib/usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/
按下Esc按鈕退出編輯模式
輸入“:wq”保存并退出
7.編譯并運(yùn)行,在caffe根目錄下執(zhí)行
make all
等待大約10分鐘
make test
make runtest
安裝成功。
8.caffe的環(huán)境安裝好了,現(xiàn)在使用mnist數(shù)據(jù)集進(jìn)行測(cè)試,在caffe根目錄下執(zhí)行以下指令
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
修改這個(gè)文件
??? vi examples/mnist/lenet_solver.prototxt
訓(xùn)練以及測(cè)試
??? ./examples/mnist/train_lenet.sh
測(cè)試成功,迭代100次,精度0.98,懲罰值0.05