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

由於虛擬機下的Ubuntu系統一般不包含GPU,故這次安裝時爲了在無GUP環境下運行caffe。所以只需安裝CPU版本的caffe


 由於本機是window10系統,所以想嘗試caffe就在自己電腦上整了一個虛擬機(詳情可見:win10系統搭建虛擬機:VMware Workstation Player 12環境+Ubuntu Kylin 16.04 LTS系統),然後昨天在自己虛擬機上配置了一個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、安裝依賴

安裝依賴項,這個是根據caffe官網的要求配的,打開caffe官網,在說明裏有installing ···for···ubuntu,裏面有裝caffe的步驟

[python] view plain copy
  1. sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler  
  2. sudo apt-get install --no-install-recommends libboost-all-dev  
  3. sudo apt-get install libatlas-base-dev  
  4. sudo apt-get install libhdf5-serial-dev  
  5.    


      2、配置python


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

      之後還要執行:

[python] view plain copy
  1. sudo apt-get install python-dev  
      加載之後:

[python] view plain copy
  1. sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev  
      以上所有sudo apt-get在什麼文件夾下輸入都無所謂


      3、配置caffe


      把CAFFE的源代碼下載下來: 

[html] view plain copy
  1. git clone https://github.com/BVLC/caffe.git  
如果沒有git,還需要安裝git:

[html] view plain copy
  1. apt-get install git  


      下載完成之後,進入caffe文件夾, 進入裏面的python文件夾,然後輸入

[html] view plain copy
  1. 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

[html] view plain copy
  1. sudo apt install python-pip  

      更新pip:pip install -U pip 


4、配置caffe的makefile文件


      到CAFFE文件夾, 使用模板寫個Makefile.config
[html] view plain copy
  1. cp Makefile.config.example Makefile.config  
      -因爲CPU MODE, 所以在CPU_ONLY := 1前面的#要去掉.
      -兩個路徑要改成這樣:(添加後面的兩個hdf5的路徑, 否則編譯時報hdf5錯誤)
[html] view plain copy
  1. # Whatever else you find you need goes here.  
  2. INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial  
  3. LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial  

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


{

打開並修改配置文件:
sudo gedit Makefile.config #打開Makefile.config文件
根據個人情況修改文件
a.若使用cudnn,則
#USE_CUDNN := 1
修改成: 
USE_CUDNN := 1
b.若使用的opencv版本是3的,則
#OPENCV_VERSION := 3 
修改爲: 
OPENCV_VERSION := 3
c.若要使用python來編寫layer,則
#WITH_PYTHON_LAYER := 1 
修改爲 
WITH_PYTHON_LAYER := 1
d.重要的一項 :
將# Whatever else you find you need goes here.下面的
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 
修改爲: 
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 /usr/lib/x86_64-linux-gnu/hdf5/serial       
這是因爲ubuntu16.04的文件包含位置發生了變化,尤其是需要用到的hdf5的位置,所以需要更改這一路徑.
此處轉自:  https://www.cnblogs.com/longmao-yiran/p/6832374.html
}
     


 設置好文檔名稱之後,就要設置make:

[html] view plain copy
  1. make pycaffe  
  2. make all  
  3. make test  
  4. make runtest  

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

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


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

[html] view plain copy
  1. sudo gedit Makefile.config   

報錯:

[html] view plain copy
  1. make: *** No rule to make target 'pycaffe'.  Stop.  

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



5、配置python caffe


      make之後,需要設置一下環境變量:

[html] view plain copy
  1. export PYTHONPATH=/caffe/python:$PYTHONPATH  

      去到CAFFE文件夾裏面的python文件夾, 把當前路徑記錄下來(pwd).注意是cd caffe裏面python文件夾下,才行,不然直接調用會報錯

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

[html] view plain copy
  1. import caffe  

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


MNIST數據集測試
配置caffe完成後,我們可以利用MNIST數據集對caffe進行測試,過程如下:
 
1.將終端定位到Caffe根目錄
cd ~/caffe
 
2.下載MNIST數據庫並解壓縮
./data/mnist/get_mnist.sh
 
3.將其轉換成Lmdb數據庫格式
./examples/mnist/create_mnist.sh
 
4.訓練網絡
./examples/mnist/train_lenet.sh
訓練的時候可以看到損失與精度數值,如下圖:
圖7.MNIST數據集訓練
可以看到最終訓練精度是0.9914。


      當然,報錯無數...本節主要內容可參考博客:Ubuntu 16.04上安裝Caffe(CPU only)

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


二、報錯舉例


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


      1、linux系統的報錯問題


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

      解決:apt-get update


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


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


[html] view plain copy
  1. 1、找出apt-get進程(下載進程)  
  2. 一般ubu裏面都會出現的吧,因爲剛剛開始系統,系統後臺都會默認幫你預裝什麼東西  
  3. 查找進程代碼:  
  4. ps -df | grep apt  
  5. 然後kill:  
  6. kill -9 2542 2543(  
  7. 報錯:bash: kill: (2542) - Operation not permitted  
  8. bash: kill: (2543) - Operation not permitted  
  9. )  
  10. 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"


[html] view plain copy
  1. Error: 'make all' 'make test'  
  2. .build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)'   
  3. .build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'  


      原因:caffe代碼中並沒有build文件夾,需要新建build文件夾之後再進行編譯:


[html] view plain copy
  1. cd caffe-master  #打開caffe所在文件夾  
  2. cp Makefile.config.example Makefile.config  #change setting in Makefile.config  
  3. make all -j8  #在build文件夾下進行編譯  
  4. make test -j8   
  5. make runtest -j8  #使用CPU多核同時進行編譯  


3、python報錯問題


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

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

[html] view plain copy
  1. sudo apt-get install python-numpy  

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


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

      再加載一次。

[html] view plain copy
  1. 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)虛擬機的顯卡是跟着本機的嗎?

[html] view plain copy
  1. lspci |grep VGA  
  2. 00:0f.0 VGA compatible controller: VMware SVGA II Adapter  

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


      (2)一些文件夾無法獲得root權限

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

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

      這一問題的答案見博客:ubuntu 16.04 啓用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


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

[html] view plain copy
  1. cp /media/user/VMware\ Tools/VMwareTools-10.0.10-4301679.tar.gz /  

然後進行解壓:

[html] view plain copy
  1. tar -zxvf VMwareTools-10.0.10-4301679.tar.gz  

解壓完成後進入解壓文件夾vmware-tools-distrib

[html] view plain copy
  1. cd vmware-tools-distrib  

運行安裝程序:

[html] view plain copy
  1. ./vmware-install.pl  

一路y加回車



3、設置共享文件夾

在虛擬機->設置,添加自己的共享文件夾 


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

[html] view plain copy
  1. cd /mnt/hgfs  

看到自己的共享文件夾了。


轉自:

http://blog.csdn.net/sinat_26917383/article/details/53502719

https://www.cnblogs.com/longmao-yiran/p/6832374.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章