深度學習caffe:Ubuntu16.04安裝指南(1)


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 
View Code

進入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-lmdbmnist-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

  


免責聲明!

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



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