ubuntu 系統下的Caffe環境搭建
原文地址:http://blog.csdn.net/hjimce/article/details/48781693
作者:hjimce
對於caffe的系統一般使用linux系統,當然也有windows版本的caffe,不過如果你一開始使用了windows下面的caffe,後面學習的過程中,會經常遇到各種錯誤,網上下載的一些源碼、模型也往往不能快速的跑起來,因爲貌似caffe的官方只提供了linux版本,而且caffe在不斷的快速迭代更新中,如果不使用原版的話,後面編譯出現什麼問題,自己怎麼錯的,自己都不知道。本篇博文主要講解快速搭建caffe環境:
電腦系統:ubuntu 14.04
顯卡:GTX 850
在ubuntu下要完整的搭建caffe,個人感覺最難的一步就是cuda的安裝了,特別是對於雙顯卡的電腦來說,很容易黑屏、無法登陸圖形界面,這個我安裝了n久,都沒裝成功,因爲我的電腦筆記本雙顯卡,每次裝完cuda就黑屏,網上的教程一大堆,但都中看不中用,導致我重裝了二三十次的系統,最後才成功。這裏爲了講caffe的安裝,我們先不使用GPU,進行安裝測試,因爲沒有GPU我們依舊可以跑caffe,只是速度比較慢而已。
1、安裝caffe所需要的依賴庫
命令:
- sudo apt-get install libatlas-base-dev
- sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
- sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
2、下載caffe。
到github上下載caffe:https://github.com/BVLC/caffe。下載完成後,解壓caffe源碼包。解壓後,我們打開文件,可以看到caffe的源碼包如下:
3、配置Make.config 文件。caffe文件解壓後,文件夾下面有一個Makefile.config.example文件,我們需要對這個文件進行重命名爲:Make.config 。也就是去掉後綴example。然後我們打開這個文件,可以看到如下內容:
然後我們把:#CPU_ONLY:=1,那一行的註釋符號去掉:CPU_ONLY:=1。這是因爲我們沒有安裝CUDA,還不能使用gpu,所以我們把配置改爲只使用cpu。
4、編譯caffe。
(1)在完成Make.config配置後,我們輸入命令:
- make all
(2)編譯完成後,在安裝Python接口,輸入命令:
- make pycaffe
這個文件夾下面的工具可是個好東西啊,以後我們會經常用到這些可執行文件,最常用的就是可執行文件:caffe,我們只要調用這個工具,就可以進行訓練。
(3)接着編譯test文件夾下面的源碼。命令如下:
- make test
- make runtest
安裝完了,自然要測試一下能不能用咯。首先cd到caffe目錄,然後輸入命令:
- sh data/mnist/get_mnist.sh
- sh examples/mnist/create_mnist.sh
- vim examples/mnist/lenet_solver.prototxt
把lenet_solver.prototxt裏面的solver_mode 改爲 CPU。因爲我們還沒裝GPU,暫時只使用CPU就好了。
然後我們運行腳本:
- ./examples/mnist/train_lenet.sh
說明:如果在使用caffe、或者編譯安裝caffe過程中,出現如下錯誤:
- CXX/LD -o .build_release/tools/convert_imageset.bin
- .build_release/lib/libcaffe.so: undefined reference tocv::imread(cv::String const&, int)'.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'
- LIBRARIES += glog gflags protobuf leveldb snappy \
- lmdb boost_system hdf5_hl hdf5 m \
- opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
接着就開始caffe搞起吧,推薦個caffe模型網站:https://github.com/BVLC/caffe/wiki/Model-Zoo。本來個人不是很喜歡caffe的,就是因爲這個網站吸引了我,這個網站可以搞到好多caffe模型、源碼,非常適合於我們學習。
二、在Eclipse中使用編譯調試caffe
1、首先就是安裝Eclipse,然後安裝c++開發插件,這個可以百度搜一下,eclipse下面怎麼進行c++開發。
2.導入caffe makefile工程到eclipse (由於是英文版,下面描述也用英文,省的翻譯,方便大家調試)
(1)File→New→Project→C/C++ →Makefile Project with Existing Code.
(2)Create a new Makefile Project from existing code
Projectname: caffe-master
Existing code location:/home/user/caffe-workspace/caffe-master
Language: choose C and C++
Toolchain:choose Linux GCC
(3)Then click on caffe-master in Project Explorer (set Window→Open Perspective → C/C++).
(4)Now go File → Properties → Run/Debug settings.Click New.., and choose C/C++ application
(5)Fill launch configurationproperties
· Arguments:
fill train –solver=examples/mnist/lenet_solver.prototxt
and change working directory from default to /home/user/caffe-workspace/caffe-master(change to your own directory)
(6)Now you can use debug caffe code: Run-> Debug
三、C++函數調用相關路徑,makefile
- CC=g++
- CXXFLAGS = -O2 -Wall -D__STDC_CONSTANT_MACROS
- INCLUDE = -I/usr/local/cuda/include -I. -I/usr/local/cuda/include -I/home/hjimce/caffe/include/ -I/home/hjimce/caffe/src/
- LIBRARY = -L/usr/local/x86_64-linux-gnu/ -lprotobuf \
- -L/usr/lib/x86_64-linux-gnu/ -lglog \
- -L/usr/local/cuda/lib64/ -lcudart -lcublas -lcurand \
- -L/usr/local/lib/ -lm -lpthread -lavutil -lavformat -lavcodec -lswscale -lopencv_core -lopencv_imgproc -lopencv_highgui \
- -L/usr/lib/python2.7/config-x86_64-linux-gnu/ -lpython2.7 \
- -L/sur/lib32/ -lrt \
- -L../../caffe/build/lib/ -lcaffe
- all:
- $(CC) $(INCLUDE) $(OBJS) testcpp.cpp -o exercise $(LIBRARY)
最近在ubuntu搞了一個月的caffe,總感覺很不爽,因爲ubuntn下面的c++集成開發工具,eclipse用起來沒有vs爽,因爲對caffe的函數名不是很熟悉,所以需要藉助vs的c++助手。然後前一個月大部分也是調用pycaffe,但是最近感覺需要對caffe的c++函數比較熟悉,才能把自己的能力進一步提高,於是就開始搞起了windows 下的caffe,藉助vs的強大功能,快速學習caffe。一開始採用vs2012,最後各種錯誤,最後改成vs2013很容易就編譯成功了。
最後推薦一個windows下caffe安裝網站:http://thirdeyesqueegee.com/deepdream/2015/07/13/running-deep-dream-on-windows-with-full-cuda-acceleration/ 這個包含了python的集成開發環境anaconda,caffe的全套功能。
************作者:hjimce 時間:2015.10.10 聯繫QQ:1393852684 原創文章,轉載請保留原文地址、作者等信息***************