Ubuntu14.04+caffe+CPU


       剛剛在上篇博客記錄了windows10下GPU版本caffe的安裝,正准備跑跑論文里的代碼,發現好多命令都是.sh命令,這是linux系統的腳本文件。不能直接在windows下運行,於是我想把.sh轉換為windows下可執行的bat文件,但是又發現代碼需要將數據轉換為leveldb格式。而leveldb不能直接在windows下編譯,還需配置,比較繁瑣。而lmdb可以直接在windows下編譯。下面是兩者區別:

  • 它們都是鍵/值對(Key/Value Pair)嵌入式數據庫管理系統編程庫。
  • 雖然lmdb的內存消耗是leveldb的1.1倍,但是lmdb的速度比leveldb快10%至15%,更重要的是lmdb允許多種訓練模型同時讀取同一組數據集。
  • 因此lmdb取代了leveldb成為Caffe默認的數據集生成格式

      說了這么多,就是windows確實不方便,於是想搞一波linux。但是不太熟悉,所以沒有搞雙系統,先在虛擬機上練練手,盡管虛擬機不能用GPU。

我的配置:VMware-workstation-full-12.00(12貌似更契合win10)、ubuntu-14.04-desktop-amd64(14LTS版本和16LTS版本相對穩定,amd64即64位版本)

虛擬機和ubuntu安裝比較簡單,基本是傻瓜式安裝。

安裝python接口的caffe:(無GPU)、無cuda(自然更沒有cudnn),無opencv(暫不需要)

1.安裝必要的環境

sudo apt-get update #更新軟件列表 sudo apt-get upgrade #更新軟件 sudo apt-get install build-essentia #安裝build essentialsl sudo apt-get install linux-headers-'uname -r' #安裝最新版本的kernel headers

 

2.安裝所需要的依賴包

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 libgflags-dev libgoogle-glog-dev liblmdb-dev 
sudo apt-get install libatlas-base-dev

 

3.安裝必要的庫

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev sudo apt-get install libatlas-base-dev  

 

4.下載caffe並配置python

網上的大部分方法是:

cd ~ git clone https://github.com/BVLC/caffe.git #克隆caffe到本地,並命名為caffe
cd caffe cat python/requirements.txt | xargs -L 1 sudo pip install  安裝caffe/python/requirements.txt里面所有要求的庫

 我就被坑在這里了,上面的命令用到了pip。所以先裝pip,即執行sudo apt-get install python-pip

 但是裝好pip后,上面安裝requirements.txt里的庫時,速度很慢,基本都是timeout的錯誤,網上好多修改配置的教程,但我沒有設置成功。。

 所以我采取下面的方法,即把requirements.txt里的庫拿出來,挨個下載:

sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage \ python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython 

 上面就算caffe/python所有所需要的庫。裝好后沒有報錯即可,可以測試下:終端輸入python,然后任意輸入import scipy或import Cython都無錯。

 

5.配置並編譯caffe

修改Makefile.config.example

cd caffe
cp Makefile.config.example Makefile.config

 上面命令意思:將caffe文件夾里的Makefile.config.example 復制為Makefile.config

 然后進入Makefile.config文件夾,改些東西:

#去掉CPU_ONLY:=1的注釋 #在PYTHON_INCLUDE下把 # /usr/lib/python2.7/dist-packages/numpy/core/include #改為 # /usr/local/lib/python2.7/dist-packages/numpy/core/include

下面開始編譯caffe:

進入caffe文件夾根目錄下,eg:~/caffe$ ,進行如下操作:

 

make all

make pycaffe

make distribute

make test

 

 這個運行比較久。

 

6.修改環境路徑

將PYTHONPATH寫入.bashrc中:

echo 'export PYTHONPATH =$PYTHONPATH:/home/'username'/caffe/python'>>~/.bashrc source ~/.bashrc

根據每個人不同的路徑加以修改,例如我的是 'export PYTHONPATH=$PYTHONPATH:/home/lps/caffe/python'

 

7.測試

 

運行MNIST:

1)按照官網先准備數據集:

cd ~/caffe #將終端定位到Caffe根目錄 ./data/mnist/get_mnist.sh #下載MNIST數據庫並解壓縮 ./examples/mnist/create_mnist.sh #將其轉換成Lmdb數據庫格式

2)編輯lenet_solver的solver_mode模式從GPU改為CPU:

vim ./examples/mnist/lenet_solver.prototxt #改為solver_mode: CPU

3)訓練模型

cd $CAFFE_ROOT ./examples/mnist/train_lenet.sh

4)訓練結果

 


免責聲明!

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



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