一、安装显卡驱动
Ubuntu16.04.3在系统设置里可以直接安装NVIDIA驱动。
System Settings ->Software & Updates->Additonal Drivers->NVIDIA Corporation->Using NVIDIA binary driver ……
选择好之后点击Apply Changes,如果提示需要Secure boot,则按提示设置密码,之后重启时注意选择Secure boot, 并按提示输入密码。重启完成后,驱动便安装完毕。
二 、安装cuda8.0
虽然cuda9.0已经发布,但很多类库还不支持,所以推荐安装cuda8.0。
在NVIDIA官网下载cuda8.0,注意下载run文件格式。地址:https://developer.nvidia.com/cuda-80-ga2-download-archive
cuda需要安装OpenGL
- sudo apt-get install build-essential libgl1-mesa-dev
- sudo apt-get install freeglut3-dev
- sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev
终端输入上述命令即可。
进入下载好的.run文件的目录,执行
- sudo sh cuda_8.0.44_linux.run
安装cuda时注意不要安装驱动,其他选择yes即可。
配置环境变量:
- sudo vim ~/.bashrc
- export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
- export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- :wq
- source ~/.bashrc
sudo gedit /etc/ld.so.conf.d/cuda.conf
在打开的文件中添加如下语句:
/usr/local/cuda/lib64
然后执行
sudo ldconfig
使链接立即生效。
三、使用cudnn
下载cudnn,需要注册NVIDIA账号,地址https://developer.nvidia.com/rdp/cudnn-download
下载完cudnn5.0之后进行解压,cd进入cudnn5.1解压之后的include目录,在命令行进行如下操作:sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件
再将cd进入lib64目录下的动态文件进行复制和链接:
sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接
四、安装anaconda3
官网下载anaconda3,地址:https://www.continuum.io/downloads/
下载好后执行:
- bash ~/Downloads/Anaconda3-5.0.1-Linux-x86_64.sh
五、编译安装opencv3.3.0
安装依赖:
- sudo apt-get install --assume-yes libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
- sudo apt-get install build-essential cmake git
- sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
- mkdir build #新建一个build文件夹,编译的工程都在这个文件夹里
- cd build
- cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON_EXECUTABLE=/path/to/anaconda3/bin/python3 -DPYTHON_INCLUDE_DIR=/path/to/anaconda3/include/python3.6m -DPYTHON_LIBRARY=/path/to/anaconda3/lib/libpython3.6m.so -DPYTHON_NUMPY_INCLUDE_DIRS=/path/to/anaconda3/lib/python3.6/site-packages/numpy/core/include ..
然后:
- make -j4
- #开始编译
- sudo make install
- sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
- sudo ldconfig
六、编译caffe
安装依赖:
- 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 libboost-all-dev
- sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
- sudo apt-get install -y python-pip
- sudo apt-get install -y python-dev
- sudo apt-get install -y python-numpy python-scipy
- git clone https://github.com/BVLC/caffe.git //从github上git caffe
- cd caffe //打开到刚刚git下来的caffe
- sudo cp Makefile.config.example Makefile.config //将Makefile.config.example的内容复制到Makefile.config
- //因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子
- sudo vim Makefile.config //打开Makefile.config文件
- #取消以下注释
- USE_CUDNN := 1
- OPENCV_VERSION := 3
- WITH_PYTHON_LAYER := 1
- #将Python有关目录修改为
- PYTHON_LIBRARIES := boost_python3 python3.6m #这里需要建立boost_python3链接,方法见参考资料
- ANACONDA_HOME := /path/to/anaconda3 #改成自己anaconda的路径
- PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
- $(ANACONDA_HOME)/include/python3.6m \
- $(ANACONDA_HOME)/lib/python3.6/site-packages/numpy/core/include
- PYTHON_LIB := $(ANACONDA_HOME)/lib
- LINKFLAGS := -Wl,-rpath,$(ANACONDA_HOME)/lib
- #最后修改INCLUDE_DIRS,LIBRARY_DIRS
- 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
- 然后修改makefile文件
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
然后再大概181行的地方做修改
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
替换为
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 opencv_core opencv_imgproc opencv_imgcodecs opencv_highgui
之后
- make all -j4
- make test -j4
- make runtest
- make pycaffe