1、安裝顯卡驅(qū)動(dòng)
2、安裝依賴庫(kù)(gpu依賴庫(kù)和caffe依賴庫(kù))
sudo apt-get install vim python-pip git
sudo apt-get install build-essential libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install? libboost-all-dev
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
sudo apt-get install freeglut3-devbuild-essentiallibx11-devlibxmu-devlibxi-devlibgl1-mesa-glxlibglu1-mesalibglu1-mesa-dev
3、安裝opencv
sudo apt install libopencv-dev python-opencv
4、安裝cuda(我裝的是9.1)
進(jìn)入到有cuda安裝文件的目錄,執(zhí)行安裝文件(確定該目錄下有cuda_x.x.x_linux.run文件)
sudo sh ./cuda_x.x.x_linux.run
到安裝nvidia驅(qū)動(dòng)確認(rèn)的時(shí)候選擇n(如果之前已經(jīng)安裝過了)
5、安裝cudnn(只是復(fù)制文件加鏈接,不需要編譯安裝的過程)
下載對(duì)應(yīng)cuda版本的cudnn
解壓出cuda文件夾,在解壓出的cuda文件夾目錄下
sudo cp lib64/lib* /usr/local/cuda/lib64/? ?
sudo cp include/cudnn.h /usr/local/cuda/include/
cd /usr/local/cuda/lib64/?
sudo chmod +r libcudnn.so.x.x.x
sudo ln -sf libcudnn.so.x.x.x libcudnn.so.x?
sudo ln -sf libcudnn.so.x libcudnn.so?
sudo ldconfig
然后修改環(huán)境變量
sudo vim /etc/profile
?添加環(huán)境變量如下:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
source /etc/profile
6、安裝caffe
下載caffe
git clone https://github.com/BVLC/caffe.git
進(jìn)入caffe目錄下
sudo cp Makefile.config.example Makefile.config
修改 Makefile.config 文件
sudo vim Makefile.config
(1)CUDA_ARCH設(shè)置,因?yàn)榘惭b的是9.1,所以刪除前兩行
-gencode?arch=compute_20,code=sm_20\?
-gencodearch=compute_20,code=sm_21\?
(2)應(yīng)用cudnn
#USE_CUDNN := 1
to
USE_CUDNN := 1
(3)應(yīng)用opencv3
#OPENCV_VERSION := 3
to?
OPENCV_VERSION := 3
(4)使用python接口
#WITH_PYTHON_LAYER := 1
to
WITH_PYTHON_LAYER := 1
(5)修改python路徑
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
to
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目錄下的Makefile文件
(1)
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
to
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
(2)
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
to
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
然后修改/usr/local/cuda/include/crt/host_config.h文件
#error-- unsupported GNU version! gcc versions later than x.x are not supported!
to
//#error-- unsupported GNU version! gcc versions later than x.x are not supported!
7、編譯
caffe目錄下執(zhí)行:
make all
make test
make runtest
注意:
在make runtest可能會(huì)出現(xiàn)如下錯(cuò)誤:
Makefile:532: recipe for target 'runtest' failed
make: *** [runtest] Error 1
解決辦法:修改caffe目錄下Makefile文件如下,之后分別make clean,make all,make test,make runntest
# Debugging
ifeq ($(DEBUG), 1)
??????? COMMON_FLAGS += -DDEBUG -g -O0
??????? NVCCFLAGS += -G
else
??????? COMMON_FLAGS += -DNDEBUG -O2
endif
to
# Debugging
ifeq ($(DEBUG), 1)
??????? COMMON_FLAGS += -DDEBUG -g -O0
??????? NVCCFLAGS += -G
else
??????? COMMON_FLAGS += -DNDEBUG -O2
??????? NVCCFLAGS += -G
endif
8、安裝pycaffe(caffe的Python接口)
進(jìn)入目錄caffe/python,然后終端執(zhí)行:
for req in $(cat requirements.txt) --user; do pip install $req; done
然后回到caffe目錄,終端執(zhí)行:
make pycaffe
配置caffe中的python環(huán)境:
vim ~/.bashrc
加入以下內(nèi)容:
export PYTHONPATH=/caffe所在路徑/caffe/python:$PYTHONPATH
注意:
for req in $(cat requirements.txt) --user; do pip install $req; done
這句命令如果不加 --user有的會(huì)沒有權(quán)限。在執(zhí)行過程中也可能會(huì)發(fā)現(xiàn)缺模塊,但是根據(jù)提示pip install安裝就行。最新版的pip會(huì)出現(xiàn)錯(cuò)誤如下:
Import Error:cannot import name main
解決方法如下:
sudo vim /usr/bin/pip
之后
from pip import main
if__name__ =='__main__':
? ? sys.exit(main())
to
from pip import__main__
if__name__ =='__main__':
? ? sys.exit(__main__._main())