1. 程式人生 > >caffe+CPU︱虛擬機器+Ubuntu16.04+CPU+caffe安裝筆記

caffe+CPU︱虛擬機器+Ubuntu16.04+CPU+caffe安裝筆記

其中,只是嘗試著搭建了一個CPU版本的caffe,Ubuntu16.04中自帶了python 2.7。

在安裝的過程中,真的會出現各種各樣的報錯,但是...

感慨天朝的實力... 每一個bug都能搜尋到如何解,所以...  不要擔心,百度、谷歌一起教你裝caffe。

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

本篇內容為兩個:caffe安裝流程+報錯舉例

一、caffe安裝流程:安裝依賴、配置python、配置caffe、配置caffe的makefile檔案、配置python caffe

二、報錯舉例:linux系統的報錯問題、caffe報錯問題、python報錯問題、虛擬機器問題

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

一、caffe安裝流程

caffe安裝流程:安裝依賴、配置python、配置caffe、配置caffe的makefile檔案、配置python caffe

1、安裝依賴

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libhdf5-serial-dev
 

2、配置python

一般linux都自帶python,看看python版本:python2.7 --version

之後還要執行:

sudo apt-get install python-dev
載入之後:
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
以上所有sudo apt-get在什麼資料夾下輸入都無所謂

3、配置caffe

把CAFFE的原始碼下載下來: 

git clone https://github.com/BVLC/caffe.git
如果沒有git,還需要安裝git:
apt-get install git

下載完成之後,進入CAFFE資料夾, 進入裡面的PYTHON資料夾,然後輸入

for req in $(cat requirements.txt); do pip install $req; done

如何尋找到linux的caffe的路徑呢?

貌似直接cd caffe/python一般就能夠直接轉給去

pip沒有安裝,還需要安裝pip或者easy_install(先修改環境,再sudo):

修改python的環境變數:export PATH="$PATH:/usr/local/bin/ python

sudo apt install python-pip

更新pip:pip install -U pip 

4、配置caffe的makefile檔案

到CAFFE資料夾, 使用模板寫個Makefile.config
cp Makefile.config.example Makefile.config
-因為CPU MODE, 所以在CPU_ONLY := 1前面的#要去掉.-兩個路徑要改成這樣:(新增後面的兩個hdf5的路徑, 否則編譯時報hdf5錯誤)
# Whatever else you find you need goes here.
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

(注意:/usr之前有一個“空格”,而且這個是在makefile中進行修改)

設定好文件名稱之後,就要設定make:

make pycaffe
make all
make test
make runtest

個make預設是用CPU單核運算,如果想要快一點, 比如我想使用四核, 在make後面加上-j4標籤.

     如果上面4行某一行報錯之後想要重試,建議先make clean再重新開始.


出現的問題:不能修改檔案內容,那麼可以用:

sudo gedit Makefile.config 

報錯:

make: *** No rule to make target 'pycaffe'.  Stop.

需要make clean一下,才能再次make all ,同時cd隨便哪個目錄都行

5、配置python caffe

make之後,需要設定一下環境變數:

export PYTHONPATH=/caffe/python:$PYTHONPATH

     去到CAFFE資料夾裡面的python資料夾, 把當前路徑記錄下來(pwd).注意是cd caffe裡面python資料夾下,才行,不然直接呼叫會報錯

     接下來就可以開啟python,然後:

 import caffe
import之後如果沒報錯,就是完全安裝好了。

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

二、報錯舉例

      報錯舉例:linux系統的報錯問題、caffe報錯問題、python報錯問題、虛擬機器問題

      1、linux系統的報錯問題

      (1)報錯:E: Unable to locate package lib

解決:apt-get update

(2)報錯: 無法獲得鎖 /var/lib/apt/lists/lock - open (11 資源臨時不可用)

一般都是有其他apt在使用,需要吊銷:

1、找出apt-get程序(下載程序)
一般ubu裡面都會出現的吧,因為剛剛開始系統,系統後臺都會預設幫你預裝什麼東西
查詢程序程式碼:
ps -df | grep apt
然後kill:
kill -9 2542 2543(
報錯:bash: kill: (2542) - Operation not permitted
bash: kill: (2543) - Operation not permitted
)
sudo kill -9 2542 2543

參考連結:http://www.linuxidc.com/Linux/2014-06/103437.htm

(3)不知道apt-get之後的安裝包位置?

apt-get安裝之後,一般會在     /var/cache/apt/archives資料夾之內

當然,如果sudo apt install之後,以及安裝過的,就不會再次安裝的。

參考:http://blog.csdn.net/u013797029/article/details/44492677

2、caffe報錯問題

(1)報錯:error:"make all" "make test"

Error: 'make all' 'make test'
.build_release/lib/libcaffe.so: undefined reference to cv::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&)'
      原因:caffe程式碼中並沒有build資料夾,需要新建build資料夾之後再進行編譯:
cd caffe-master  #開啟caffe所在資料夾
cp Makefile.config.example Makefile.config  #change setting in Makefile.config
make all -j8  #在build資料夾下進行編譯
make test -j8 
make runtest -j8  #使用CPU多核同時進行編譯


3、python報錯問題

(1)pycaffe時報錯:fatal error: numpy/arrayobject.h: No such file or directory

其實numpy已經是安裝的,anaconda2裡面有,Python中import numpy也沒有問題,但就是在此處報錯,解決方法: 

sudo apt-get install python-numpy

      參考:http://blog.csdn.net/wuzuyu365/article/details/52430657

(2)ImportError: No module named google.protobuf.internal

再載入一次。

sudo pip install protobuf

(3)Matplotlib is building the font cache using fc-list. This may take a moment

      再次呼叫import caffe時候,出現的問題

      需要設定一下路徑export PYTHONPATH=/caffe/python:$PYTHONPATH  ,在這之前,很重要的是要去到caffe下的python資料夾下。


4、虛擬機器問題

(1)虛擬機器的顯示卡是跟著本機的嗎?

lspci |grep VGA
00:0f.0 VGA compatible controller: VMware SVGA II Adapter

  因為我是在VMware中執行的,所以顯示卡貌似是VMware SVGA II,好像跑不了GPU...

      (2)一些資料夾無法獲得root許可權

筆者在使用的時候會出現只有通過命令先root,才能修改一些資料夾,進行復制和貼上。

但是不能在介面中直接操作的問題?

可以很好地解決root問題,就是重新再成立一個root賬號,這樣你就可以直接擁有root介面啦。

    (3)VMware Player cannot connect to the virtual machine


用管理員身份執行即可.

針對這一問題,官網給出的解答是兩個原因:

1、VMware授權服務沒有執行,解決辦法參考見blog:http://www.2cto.com/os/201111/112418.html

2、服務不具有管理員許可權,用管理員身份執行

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

延伸一:使用安裝VMware Tools工具進行檔案共享

跟虛擬機器進行檔案共享需要下載一下VMware Tools,那麼步驟為:

1、點選安裝vmware tools


我的機器是“重新安裝”

2、光碟機vmware tools

點開之後,由於是不能在這個裡面進行操作的,所以需要複製到機器

cp /media/user/VMware\ Tools/VMwareTools-10.0.10-4301679.tar.gz /

然後進行解壓:

tar -zxvf VMwareTools-10.0.10-4301679.tar.gz

解壓完成後進入解壓資料夾vmware-tools-distrib

cd vmware-tools-distrib

執行安裝程式:

./vmware-install.pl

一路y加回車


3、設定共享資料夾

在虛擬機器->設定,新增自己的共享資料夾 


然後就完成了,你就可以在路徑:

cd /mnt/hgfs

看到自己的共享檔案夾了。