caffe [CPU ONLY] 2017-01-15
最簡單的安裝配置方式: 不用GPU加速,使用OPENCV2.4圖像庫, 這是根據官方教程(鏈接如下)簡化而得到.
Ubuntu 16.04 or 15.10 Installation Guide
1. 軟件源更新
剛剛安裝好Ubuntu16.04的系統之后,第一步應該是更新軟件源,有多種方式,這里使用的是直接編輯配置文件的方式.
# 01在修改source.list前,最好先備份一份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.old # 02執行命令打開sources.list文件: # 可以用vim, gedit, kate, atom等工具打開 # sudo vim /etc/apt/sources.list sudo gedit /etc/apt/sources.list # 03寫入新的軟件源 # 這里推薦清華大學的Ubuntu鏡像 # 北京交通大學的Ubuntu鏡像只能給Ubuntu14.04及一下版本的使用 # 具體內容見后面 # 04開始更新 sudo apt-get update # 05不要進行系統升級!!! # 即,不要執行下面的命令 # sudo apt-get upgrade
清華大學Ubuntu16.04軟件源
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe ultiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse
2. 前置命令執行[安裝各種包]
sudo apt-get update sudo apt-get install -y build-essential cmake git pkg-config sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler sudo apt-get install -y libatlas-base-dev sudo apt-get install -y --no-install-recommends libboost-all-dev sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev # (Python general) sudo apt-get install -y python-pip # (Python 2.7 development files) sudo apt-get install -y python-dev sudo apt-get install -y python-numpy python-scipy # (OpenCV 2.4) sudo apt-get install -y libopencv-dev
這些命令做了什么
安裝了編譯工具cmake, git客戶端, hdf5/lmdb,以及boost圖像庫
Python部分選擇2.7版本,安裝對應的numpy庫, 是否安裝成功可以通過如下方式測試[不報錯則numpy庫安裝ok]:
OpenCV2.4通過上面的命令直接安裝完成,省去了OPENCV3和OPENCV3.1編譯和一步步配置安裝的過程.
3. 下載/配置/編譯 caffe
3源碼下載/解壓
項目地址: https://github.com/BVLC/caffe
選擇直接下載,得到 caffe-master.zip
注:雖然可以通過git命令直接clone項目(git clone https://github.com/BVLC/caffe.git ),但是速度特別慢,只有4KB左右,建議直接下載
解壓到~/bin 目錄下
sudo make ~/bin cd ~/bin cp /PATH/TO/caffe-master ~/bin unzip caffe-master.zip rm -rf caffe-mater.zip
3安裝caffe
進入caffe-master目錄
cd ~/bin/caffe-master/ cp Makefile.config.example Makefile.config # 編輯配置文件 # 安裝kate,用命令 # sudo apt-get install kate kate ./Makefile.config &
編輯配置文件
Makefile.config
# 01 因為只使用CPU # 不用GPU加速 # 所以 取消注釋 # 默認是使用 GPU + CPU 運算 # CPU-only switch (uncomment to build without GPU support). # CPU_ONLY := 1 CPU_ONLY := 1 # 02 Python2.7 運行環境配置項 # 讓 Makefile.config包含下面內容 # 不用修改 PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include # 取消注釋 WITH_PYTHON_LAYER := 1 #下面兩項,包含下面的內容就好 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 # OPENCV3還需要額外配置,OPENCV2.4不用
Makefile
kate Makefile.config
# 替換 NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) # 如下 NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
在正式編譯之前,可能還需要附加hdf5的設置:

find . -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' \; cd /usr/lib/x86_64-linux-gnu sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
進入caffe-master/python目錄
for req in $(cat requirements.txt); do pip install $req; done #上面代碼執行如果出現什么問題,再嘗試下面的的命令: for req in $(cat requirements.txt); do sudo -H pip install $req --upgrade; done
編譯
make all make test make runtest make pycaffe -should be finished already, so you can omit this one make distribute
上面的命令都可以替換成如下形式:
make all # can become make all -j $(($(nproc) + 1))
4. MNIST實驗
下面的操作都是在caffe-master目錄下,切換工作目錄
cd ~/bin/caffe-master
步驟一:數據預處理 [下載數據]
sh data/mnist/get_mnist.sh
步驟二:重建lmdb文件. Caffe支持多種數據格式輸入網絡,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根據自己需要選擇不同輸入吧.
$ sh examples/mnist/create_mnist.sh
生成mnist-test-lmdb和 mnist-train-lmdb文件夾,這里包含了lmdb格式的數據集.
步驟三:訓練mnist. [CPU Only需要修改配置文件]
sh examples/mnist/train_lenet.sh # 輸出 "Optimization Done." # 成功,准確率達到99%
附:如何修改配置文件支持CPU ONLY
# CUP Only 修改配置文件 vim examples/mnist/lenet_solver.prototxt # 將配置文件末尾修改如下 # solver mode: CPU or GPU # solver_mode: GPU solver_mode: CPU
iiiiiiii