一、安裝Anaconda2
從官網下載所需的linux版本的可執行文件,執行如下命令:
cd downloadpath
bash Anaconda2-4.2.0-Linux-x86_64.sh
後面就根據提示執行就可以了,最後一步添加環境變量的部分選擇yes,它會自動添加到用戶環境變量文件~/.bashrc文件中.安裝完成後,爲了防止編譯caffe時文件衝突造成的一些錯誤,需替換掉anaconda包內的ibstdc++,libgomp這幾個4.x版本的gcc編譯動態庫軟連接:
rm -rf /home/your_path/anaconda2/lib/libstdc++.so
rm -rf /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so
rm -rf /home/your_path/anaconda2/lib/libstdc++.so.6
rm -rf /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /home/your_path/anaconda2/lib/libstdc++.so.6
ln -s /home/your_path/anaconda2/lib/libstdc++.so.6 /home/your_path/anaconda2/lib/libstdc++.so
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6
ln -s /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6 /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so
rm -rf /home/your_path/anaconda2/lib/libgomp.so
rm -rf /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so
rm -rf /home/your_path/anaconda2/lib/libgomp.so.1
rm -rf /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so.1
ln -s /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0 /home/your_path/anaconda2/lib/libgomp.so.1
ln -s /home/your_path/anaconda2/lib/libgomp.so.1 /home/your_path/anaconda2/lib/libgomp.so
ln -s /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0 /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so.1
ln -s /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so.1 /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so
將your_path改成你自己的。
二、安裝編譯caffe
安裝依賴項:
sudo apt-get install libprotobuf-dev protobuf-compiler libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
從github上獲取caffe:
git clone https://github.com/BVLC/caffe.git
sudo cp Makefile.config.example Makefile.config
修改Makefile.config文件(通過vim或是gedit)# cuDNN acceleration switch (uncomment to build with cuDNN).
# USE_CUDNN := 1
# CPU-only switch (uncomment to build without GPU support).
CPU_ONLY := 1
# open for OpenBlas
BLAS := atlas
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
ANACONDA_HOME := $(HOME)/anaconda
修改爲:
ANACONDA_HOME := $(HOME)/anaconda2
# PYTHON_INCLUDE := /usr/include/python2.7 \
# /usr/lib/python2.7/dist-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
ANACONDA_HOME := $(HOME)/anaconda2
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
#PYTHON_LIB := /usr/lib
PYTHON_LIB := $(ANACONDA_HOME)/lib
#WITH_PYTHON_LAYER := 1
修改爲
WITH_PYTHON_LAYER := 1
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
編譯caffe之前,添加環境路徑:
sudo gedit ~/.bashrc
在最後加上
export PYTHONPATH=/home/xiaofeng/caffe-master/python:$PYTHONPATH
export PATH="/home/xiaofeng/anaconda2/bin:$PATH"
export LD_LIBRARY_PATH="/home/xiaofeng/anaconda2/lib":$LD_LIBRARY_PATH
編譯caffe
make all -j8
make test -j8
make runtest -j8
所有過程無報錯,就可以說已經萬事大吉啦