配置以下: caffe + cuda8.0[GPU加速[只支持N卡]] + cudnn5.1 + opencv3.1 + python2.7 + boost58 , 主要参考了caffe官方教程html
Ubuntu 16.04 or 15.10 Installation Guidepython
开始前,请先阅读: linux
深度学习caffe:Ubuntu16.04安装指南(2)git
正式开始安装前,你须要一台已经安装好了Ubuntu16.04系统的电脑,而后/home分区最好有尽量大的空间[最好>=20G],由于后面的实验须要的存储空间通常都比较大.github
操做命令ubuntu
# 在修改source.list前,最好先备份一份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.old # 执行命令打开source.list文件,清空内容,输入清华的软件源 sudo gedit /etc/apt/sources.list # 开始更新 sudo apt-get update
清华大学vim
# 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 multiverse 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
caffe的编译/运行时须要依赖一些其它的程序和各类库bash
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 sudo apt-get install -y python-pip
建议:网络
安装过程最好一条命令一条命令的执行,出现了错误方便及时发现.app
安装过程出现了安装失败的状况,不用担忧,通常是由于网络缘由,从新执行命令,通常多试几回就会好啦~
下载
官网下载: https://developer.nvidia.com/cuda-downloads
直接下载: cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb
安装
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb sudo apt-get update sudo apt-get install cuda
一个深度神经网络 库,用来给GPU加速,被普遍的用在各类深度学习框架中,如Caffe, TensorFlow, Theano, Torch 和CNTK.
下载[须要简单注册一下以后才能够下载]
官网下载: https://developer.nvidia.com/cudnn
直接下载: cudnn-8.0-linux-x64-v5.1.tgz
安装
解压/拷贝
# 解压 tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz # 解压后在当前目录下产生一个cuda目录 cd cuda/include/ sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件 cd ../lib64 #打开lib64目录 sudo cp lib* /usr/local/cuda/lib64/ #复制库文件 # 给全部用户增长这些文件的读权限 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
更新软连接,终端输入
cd /usr/local/cuda/lib64/ sudo rm -rf libcudnn.so libcudnn.so.5 sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 sudo ln -s libcudnn.so.5 libcudnn.so
设置环境变量,终端输入
sudo gedit /etc/profile # 在末尾加入 PATH=/usr/local/cuda/bin:$PATH export PATH
保存后,sudo source /etc/profile 马上生效
sudo vim /etc/ld.so.conf.d/cuda.conf # 按a进入插入模式,增长下面一行 /usr/local/cuda/lib64
按esc退出插入模式,按:wq保存退出
最后在终端输入sudo ldconfig
使配置生效
测试:
测试cuda和cudnn安装配置是否成功: cuda8.0+cudnn5.1测试
下载
项目地址: https://github.com/opencv/opencv.git
直接下载: opencv-master.zip
依赖项安装
sudo apt-get install --assume-yes build-essential cmake git sudo apt-get install --assume-yes build-essential pkg-config unzip ffmpeg qtbase5-dev python-dev python3-dev python-numpy python3-numpy sudo apt-get install --assume-yes libopencv-dev libgtk-3-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev sudo apt-get install --assume-yes libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev sudo apt-get install --assume-yes libv4l-dev libtbb-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev sudo apt-get install --assume-yes libvorbis-dev libxvidcore-dev v4l-utils
解压,进入opencv-master目录 ,开始编译
# 解压进入源码目录 unzip opencv-master.zip cd opencv-master # 建立build目录,用于编译 mkdir 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 -D WITH_CUBLAS=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" .. make -j $(($(nproc) + 1))
安装
# 当前在build目录下 sudo make install sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig sudo apt-get update
测试:
到了这一步,若是没有报错,说明已经安装成功了,为了确认一下,能够用一个例子实际跑一下.
具体能够参考个人这一篇博文: OPENCV3.1测试demo
直接执行下列命令便可,不然在下一步caffe编译执行"make all"时 会报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
下载
项目地址: https://github.com/BVLC/caffe
直接下载: caffe-master.zip
注: 经过git命令直接clone项目(git clone https://github.com/BVLC/caffe.git ),可是速度通常都特别慢,建议直接下载
python库支持
解压caffe-master.zip以后,进入caffe-master/python,安装python需求库
unzip caffe-master.zip cd caffe-master # 第一步,安装python需求库 cd python for req in $(cat requirements.txt); do pip install $req; done
配置文件修改: Makefile和Makefile.config[当前目录caffe-master]
Makefile
gedit ./Makefile # 替换 NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) # 为 NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
Makefile.config
cp Makefile.config.example Makefile.config gedit ./Makefile.config
修改配置项以下
# 取消注释 USE_CUDNN := 1 OPENCV_VERSION := 3 # 包含和库路径保持同下面一致 CUDA_DIR := /usr/local/cuda-8.0 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 /usr/local/share/OpenCV/3rdparty/lib/
编译运行
# 多核并行,加快执行速度: -j $(($(nproc) + 1)) make all -j $(($(nproc) + 1)) make test -j $(($(nproc) + 1)) make runtest -j $(($(nproc) + 1)) make pycaffe -j $(($(nproc) + 1)) make distribute -j $(($(nproc) + 1))
注: 编译运行过程如果报错提示缺乏某个软件或是库,通常直接安装就能够解决. 从新编译命令为 make clean
给当前用户bash添加python环境变量
gedit ~/.bashrc # 最后一行添加 export PYTHONPATH=/path/to/caffe-master/python:$PYTHONPATH # 当即生效 source ~/.bashrc
实验部分连接: caffe自带两个的DEMO