ubuntu16.04下配置caffe
详细介绍 安装caffe需要安装依赖库,配置环境变量,安装配置CUDA8.0 ,安装配置cudnn,安装配置opencv。
安装caffe时需要安装依赖库,
依赖的库有:OpenCV,Boost(不需要安装所有的库,只需安装filesystem,python,system,thread)。
安装后续步骤或环境必需的依赖包,依次输入以下命令:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
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
sudo apt-get install git cmake build-essential
注意:如果出现如下情形,
E: 无法定位软件包 libprotobuf-dev
E: 无法定位软件包 libleveldb-dev
E: 无法定位软件包 libsnappy-dev
E: 无法定位软件包 libopencv-dev
E: 无法定位软件包 libhdf5-serial-dev
E: 无法定位软件包 protobuf-compiler}}}
用sudo apt-get update 更新源, 然后按照上述命令重新安装
禁用 nouveau
安装好依赖包后需要禁用 nouveau,只有在禁用掉 nouveau 后才能顺利安装 NVIDIA 显卡驱动.
禁用方法就是在 /etc/modprobe.d/blacklist-nouveau.conf 文件中添加一条禁用命令,首先需要打开该文件,通过以下命令打开:
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
打开后发现该文件中没有任何内容,写入:
blacklist nouveau option nouveau modeset=0
保存时命令窗口可能会出现以下提示:
(gedit:3241): WARNING : Set document metadata failed: 不支持设置属性 metadata::gedit-encoding
无视此提示~,保存后关闭文件,注意此时还需执行以下命令使禁用 nouveau 真正生效:
sudo update-initramfs -u
配置环境变量
使用 gedit 命令打开配置文件:
sudo gedit ~/.bashrc
打开后在文件最后加入以下两行内容:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:LD_LIBRARY_PATH export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:LD_LIBRARY_PATH
保存退出。
下载 CUDA 8.0
下载链接
依次选择 CUDA 类型然后下载即可。
- Select Target Platform:
- Operating System:Linux
- Architecture:x86_64
- Distribution:Ubuntu
- Version:16.04
- Installer Type:runfile(local)
- 然后单击>Base Installer Download(1.4GB),
按照Installation Instructions进行安装。
安装 CUDA 8.0
在安装CUDA之前,先安装nvidia驱动,
利用PPA安装或者从nvidia官网下载驱动安装,
此处不再详述。
安装下载的cuda-8.0:sudo sh cuda_8.0.44_linux.run。
按住enter加载进度,直到100%。
可能遇到的选项:
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?
(y)es/(n)o/(q)uit: n(因为已经安装了nvidia驱动)
Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
配置 CUDA 环境变量
使用 gedit 命令打开配置文件:
sudo gedit ~/.bashrc
在该文件最后加入以下两行并保存:
export PATH=/usr/local/cuda-8.0/bin:PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:LD_LIBRARY_PATH
使该配置生效:
source ~/.bashrc
验证 CUDA 8.0 是否安装成功
执行:
nvcc –version或nvcc -V
出现如下情况则表明成功:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Sun_Sep__4_22:14:01_CDT_2016
Cuda compilation tools, release 8.0, V8.0.44
测试cuda的Samples:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
输出如下信息:
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.1, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 1050 Ti
安装 cudnn-6.0.21
从链接下载cuDNN v6.0 Library for Linux。
将下载的文件cudnn-8.0-linux-x64-v6.0.tgz移到 ~ 下,
然后用sudo tar zxvf cudnn-8.0-linux-x64-v6.0.tgz解压,得到cuda文件夹,
该文件夹下include 和 lib64 两个文件夹.
命令行进入 cuda/include 路径下,
然后进行以下操作:
sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件
然后命令行进入 cuda/lib64 路径下,运行以下命令:
sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.6 #删除原有动态文件
sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6 #生成软衔接
sudo ln -s libcudnn.so.6 libcudnn.so #生成软链接
验证cudnn是否安装成功:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
出现如下结果表明安装成功:
#define CUDNN_MAJOR 6
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 21
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#include "driver_types.h"
安装openCV3.3f
进入官网链接:l,
选择3.3.0版本的source,下载 opencv-3.3.0.zip.
(1)将其解压到你要安装的位置,
假设解压到了/home/lin/opencv.
sudo mv opencv-3.3.0.zip ~
cd ~
sudo unzip opencv-3.3.0.zip
sudo mv opencv-3.3.0 opencv
(2)安装前准备,创建编译文件夹
cd opencv/
sudo mkdir build
cd build
(3)配置
sudo apt install cmake
sudo cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
(4)编译
sudo make -j8 (-j8表示并行计算,根据自己电脑的配置进行设置,一般为CPU核数的两倍即可)
(5)安装
以上只是将opencv编译成功,还没将opencv安装,需要运行下面指令进行安装:sudo make install
(6)验证opencv是否安装成功
pkg-config –modversion opencv
安装 caffe
首先在你要安装的路径下clone:
git clone https://github.com/BVLC/caffe.git
进入caffe,将Makefile.config.example文件复制一份并更名为Makefile.config,
也可以在caffe目录下直接调用以下命令完成复制操作:
sudo cp Makefile.config.example Makefile.config
复制一份的原因是编译caffe时需要的是Makefile.config文件,而Makefile.config.example只是caffe给出的配置文件例子,不能用来编译caffe。
然后修改Makefile.config文件,在caffe目录下打开该文件:
sudo gedit Makefile.config
修改Makefile.config文件内容:
1.应用cudnn
将
#USE_CUDNN := 1
修改成:
USE_CUDNN := 1
2.应用opencv版本
将
#OPENCV_VERSION := 3
修改为:
OPENCV_VERSION := 3
3.使用python接口
将
#WITH_PYTHON_LAYER := 1
修改为
WITH_PYTHON_LAYER := 1
4.修改python路径
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
这是因为Ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径。
5.然后修改caffe目录下的Makefile文件:
将:
NVCCFLAGS +=-ccbin=(CXX) -Xcompiler-fPIC (COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=(CXX) -Xcompiler -fPIC (COMMON_FLAGS)
将:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
6.然后修改/usr/local/cuda/include/host_config.h文件:
将
#error– unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error– unsupported GNU version! gcc versions later than 4.9 are not supported!
7.开始编译了,在caffe目录下执行:
make all -j8
8.编译成功后可运行测试:
sudo make runtest -j8
last
参考实验室林师兄的教程