深度學習框架caffe特色,富有表達性、快速、模塊化。下面介紹caffe如何在Ubuntu上編譯安裝。python
protobuf
, glog
, gflags
, hdf5
lmdb
, leveldb
(note: leveldb requires snappy
)Pycaffe 和 Matcaffe,各自有各自的要求:linux
Python 2.7
or Python 3.3+
, numpy (>= 1.7)
, boost-provided boost.python
mex
compilercuDNN Caffe:支持CUDA和cuDNN快速操做git
CPU-only Caffe:無CUDA支持,只使用CPU。可用於雲和集羣部署。github
安裝依賴包(boost 和 protobuf
, glog
, gflags
, hdf5
):編程
sudo apt-get install libboost-all-dev libprotobuf-dev protobuf-compiler libhdf5-serial-dev libgflags-dev libgoogle-glog-dev
安裝依賴包(atlas):ubuntu
sudo apt-get install libatlas-base-dev
安裝依賴包(CUDA):bash
下載網址: CUDA網絡
CUDA有幾種安裝方式,因爲文件比較大,國內有源,因此這裏選擇從網絡安裝。app
下載相應的安裝包,如個人是 cuda-repo-ubuntu1504_7.5-18_amd64.deb 。而後執行以下命令:框架
sudo dpkg -i cuda-repo-ubuntu1504_7.5-18_amd64.deb sudo apt-get update sudo apt-get install cuda
設置LD_LIBRARY_PATH,最簡單的方式在你的 /etc/profile 或 ~/.bashrc 文件中添加以下語句:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
或者執行命令 sudo vi /etc/ld.so.conf.d/cuda.conf,在文件中添加以下內容:
/usr/local/cuda/lib64
而後再執行命令:
sudo ldconfig
安裝可選包(IO libraries: lmdb
, leveldb
(note: leveldb requires snappy
) 和 opencv):
sudo apt-get install libleveldb-dev libsnappy-dev liblmdb-dev libopencv-dev
安裝CUDNN:
下載網址:CUDNN (須要註冊申請,批准經過,才能下載)
解壓縮下載文件,將 include 和 lib64 拷貝放置在 /usr/local/cuda 目錄下便可。
執行以下命令修改連接文件:
cd /usr/local/cuda/lib64 rm -rf libcudnn.so libcudnn.so.4 ln -s libcudnn.so.4.0.4 libcudnn.so.4 ln -s libcudnn.so.4 libcudnn.so
獲取源代碼:
git clone git://github.com/BVLC/caffe.git
添加修改編譯配置:
cp Makefile.config.example Makefile.config
vi Makefile.config
a. 啓用CUDNN,去掉"#"
USE_CUDNN := 1
b. 配置一些引用文件(增長部分主要是解決新版本下,HDF5的路徑問題)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
c.啓用opencv3,若是你使用的 opencv >= 3.0.0
OPENCV_VERSION := 3
不然編譯時候會報錯 「 對‘cv::imdecode(cv::_InputArray const&, int)’未定義的引用 」
執行以下命令編譯:
make all -j4 make test -j4 make runtest -j4
USE_CUDNN := 1
CPU_ONLY := 1
要編譯Python 和 MATLAB 封裝包,在分別各自使用 make pycaffe
和 make matcaffe 命令編譯前,肯定在
Makefile.config
文件中,設置好 MATLAB 和 Python的路徑。
要安裝使用pycaffe,必須安裝相應的python依賴包,可進入python,並執行以下命令安裝:
for req in $(cat requirements.txt); do pip install $req; done
注意: 在安裝python包時,可能會失敗,是因爲缺乏相應的cpp版本,好比個人機器安裝pyyaml失敗,因而執行命令安裝libyaml
sudo apt-get install libyaml-cpp-dev
執行以下命令編譯 pycaffe:
make pycaffe -j4
在安裝完成以後,若是想要導入caffe
Python模塊,則添加模塊路徑到你的環境變量 $PYTHONPATH
中。好比在你的~/.bashrc中添加以下一行:
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
下面經過運行mnist來驗證caffe已正常安裝:
1. 數據預處理
data/mnist/get_mnist.sh
2. 重建lmdb文件。Caffe支持多種數據格式輸入網絡,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根據本身須要選擇不一樣輸入吧。
examples/mnist/create_mnist.sh
生成mnist-train-lmdb 和 mnist-train-lmdb文件夾,這裏包含了lmdb格式的數據集
3. 訓練mnist
examples/mnist/train_lenet.sh