ubuntu16.04安装caffe
说明:本文主要参考如下博客以及网上各种资料,记录安装caffe过程。感谢网上各位博主的热心分享。
Ubuntu 16.04下Matlab2014a+Anaconda2+OpenCV3.1+Caffe安装
Ubuntu16.04系统下CUDA7.5配置Caffe教程
-
CUDA安装(包括nvidia显卡驱动和cuda库文件):
-
CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。开发人员现在可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。
- 通过英伟达安装包来分别安装库的驱动程序而不是使用apt-get来安装。如果只有CPU可以跳过这步。
- 主板BIOS里面要选择自由选择显卡,这样才能识别nvidia的显卡并进行驱动更新。
- 快捷键ctrl+alt+T打开命令终端,加入官方ppa源(ppa简介)。
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get update $ sudo apt-get install nvidia-367 nvidia-settings nvidia-prime
$ nvidia-settings
- 从官网下载cuda7.5.run文件cuda7.5下载 ,进入该页面选择相应版本,如下图
- 可知当前cuda7.5还不支持ubuntu16.06,参考他人博客可知主要是gcc版本问题,实际可通过编译。下载完run文件后,cd命令进入该文件所在目录,进行MD5检验,确保安装包正常。
sudo md5sum cuda_7.5.18_linux.run 检验结果与源文件的md5sum比较。
- 检验正确后,输入如下代码安装(第一行修改文件权限,第二行执行文件安装):
$ chmod 777 cuda_7.5.18_linux.run $ sudo ./cuda_7.5.18_linux.run --override
- 安装后出现如下则说明安装正确:
=========== = Summary = =========== Driver: Not Selected Toolkit: Installed in /usr/local/cuda-7.5 Samples: Installed in /usr/local/cuda-7.5, but missing recommended librarie
- 接下来安装cudnn动态库,可以获得更快计算速率。cudnn5.0 ,初次进入需要注册,然后问卷调查,之后进入如下页面
- 选择cuDNN v5 Library for Linux进行下载。下载后名字为:cudnn-7.5-linux-x64-v5.0-ga.tgz,进入文件所在目录进行解压:
$ tar zxvf cudnn-7.5-linux-x64-v5.0-ga.tgz
- 解压后有个cuda文件,内有include和lib64两个文件夹,进入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
- 然后设置环境变量和动态链接库:
$ sudo gedit /etc/profile
- 然后再打开的文件末尾加上(“=”前后不要有空格)
export PATH=/usr/local/cuda/bin:$PATH
- 保存之后创建链接文件:
$ sudo vim /etc/ld.so.conf.d/cuda.conf
- 按下键盘i进行编辑:
/usr/local/cuda/lib64
- 按下esc,按下:wq保存退出。并在终端输入以下命令使该链接生效:
$ sudo ldconfig
- 使用sample里面的例子来测试还需要编译。因为当前的cuda还不支持gcc5.0以上的版本,在编译之前,我们需要修改配置文件,否则无法编译成功。
$ cd /usr/local/cuda-7.5/include $ sudo cp host_config.h host_config.h.bak #备份编译头文件 $ sudo gedit host_config.h
- 在113行将if后面的两个4改成5,改成如下所示:
#if __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ > 9) #error -- unsupported GNU version! gcc versions later than 4.9 are not supported! #endif /* __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 9) */
- 然后进入用例文件进行编译(注意执行第二步命令时候需要较长时间是正常现象):
$ cd /usr/local/cuda/samples $ sudo make all -j4 $ cd /usr/local/cuda/samples/bin/x86_64/linux/release $ sudo ./deviceQuery
- 执行命令后出现如下信息则说明显卡驱动和cuda安装成功。
-
-
BLAS安装与配置
-
BLAS,即基础线性代数子程序库,里面拥有大量已经编写好的关于线性代数运算的程序,是一个应用程序接口的标准。caffe官网上推荐了三种实现:ATLAS, MKL, or OpenBLAS。其中atlas可以直接通过命令行安装.在此,采用intel的MKL库。intel官网下载MKL ,该链接进入后,申请学生版本的Parallel Studio XE Cluster Edition,这里注册要学校的邮箱拿去注册。该文件有3.9GB,下载完成后切换进文件所在目录解压缩该文件。
$ cd ~/Downloads/ $ tar zxvf parallel_studio_xe_2016_update3.tgz #解压下载文件 $ chmod 777 parallel_studio_xe_2016_update3 -R #获取文件权限 $ cd parallel_studio_xe_2016_update3/ $ sudo ./install_GUI.sh
- 上述命令后会跳出一个安装界面,其中需要输入license,从网站上获取: license ,进入该网站后如下图点击信封那里就会给你之前注册过的邮箱发送含有license的邮件,输入即可正常安装如下图二所示。
- 安装完成后进行相关文件链接
$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
- 在打开的文件中添加库文件
/opt/intel/lib/intel64 /opt/intel/mkl/lib/intel64
- 添加完成后编译生效
$ sudo ldconfig
-
-
OpenCV3.1.0安装与配置(感觉有问题)
- 首先安装一些必要的依赖库:
sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
- OpenCV 进入该网站下载OpenCV3.1.0并解压缩,然后进入解压缩后的文件,创建build文件。
$ unzip opencv-3.1.0.zip $ cd opencv-3.1.0 $ mkdir build $ cd build $ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
- 将下载的文件替换掉 opencv-3.1.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b下的同名文件,同时在opencv-3.1.0目录下的CMakeList.txt 文件的开头加入一行,然后再次cmake即可,如下:
$ cd ~/Downloads/ $ mv ippicv_linux_20151201.tgz opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ $ vim opencv-3.1.0/CMakeLists.txt
- 在弹出的文件开头加入一行(注意里面的引号要英文状态下的):
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")
- 然后按esc和:wq保存退出。
$ cd opencv-3.1.0/build $ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. $ make -j4 #四核运算 $ sudo make install
- 以上最后两步比较耗时,耐心等待。
- 首先安装一些必要的依赖库:
-
Python安装与配置
- 选择的是anaconda linux64 2.7版本python2.7 。下载完成之后,最好也要进行md5sum的检验。完成之后,cd进入下载文件所在的目录,在命令行输入:
$ bash Anaconda2-4.0.0-Linux-x86_64.sh
- 安装完成之后,在~/.bashrc文件末尾添加Anaconda的库文件(注意“=”两边不要有空格),具体如下:
$ sudo gedit ~/.bashrc export PATH="/home/jeson/anaconda2/bin:$PATH" export LD_LIBRARY_PATH="/home/jeson/anaconda2/lib:$LD_LIBRARY_PATH"
- 重启电脑之后,在命令行输入:
$ ipython
- 就可以看到python的版本。
- 选择的是anaconda linux64 2.7版本python2.7 。下载完成之后,最好也要进行md5sum的检验。完成之后,cd进入下载文件所在的目录,在命令行输入:
-
matlab的安装与配置
- 在网盘上下载安装包及Crack破解文件之后 matlab2014 ,解压两个压缩文件(最后一步解压时也会将part2一起合并解压):
$ cd matlab2014/ $ unrar x MATHWORKS_R2014A.part1.rar
- 然后在命令行cd进入matlab2014目录,输入:
$ sudo ./install
- 1、选择“不联网安装”:“Use a File Installation Key”;
2、当出现密钥时,输入20个数字12345-67890-12345-67890即可;
3、安装路径默认为:/usr/local/MATLAB/R2014a,然后选择自己需要安装的工具(默认全选);符号链接也为默认:/usr/local/bin。
4、需要激活时选择不要联网激活"Activate manually without the Internet",运用Crack目录下的“license_405329_R2014a.lic”文件作为激活文件。
5、安装完成之后,还要将Crack/linux目录下的libmwservices.so文件拷贝到/usr/local/MATLAB/R2014a/bin/glnxa64,即:$ cd ~/matlab2014/Crack/Linux/ $ sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/
- 在网盘上下载安装包及Crack破解文件之后 matlab2014 ,解压两个压缩文件(最后一步解压时也会将part2一起合并解压):
-
caffe的安装和配置
- 安装各种依赖包
sudo apt-get update sudo apt-get upgrade 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 sudo apt-get install -y python-dev sudo apt-get install -y python-numpy python-scipy sudo apt-get install -y libopencv-dev
- 下载caffe:
cd ~ git clone https://github.com/BVLC/caffe.git //从github上git caffe
- 安装配置caffe:
cd caffe //打开到刚刚git下来的caffe cp Makefile.config.example Makefile.config //make指令只能make Makefile.config sudo gedit Makefile.config //打开Makefile.config文件
- 配置文件修改(看英文提示根据具体修改):
OPENCV_VERSION := 3 #取消注释符号#,应用opencv3 BLAS := mkl #BLAS库应用英特尔的mkl #注释第66行自带的python ANACONDA_HOME := /home/jeson/anaconda2 #将具体anaconda2路径写入 PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ $(ANACONDA_HOME)/include/python2.7 \ $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \ #PYTHON_INCLUDE之前的注释#去掉,以及之后两行前的#也去掉 PYTHON_LIB := $(ANACONDA_HOME)/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
- 为了之后编译matlab,这里提前在配置文件中修改matlab路劲,改完后保存退出:
MATLAB_DIR := /usr/local/MATLAB/R2014a
- CUDNN只支持CUDA Capability 3.0以上的GPU加速,而我的笔记本显卡GT630M才2.1的加速能力,在其他3.0以上的显卡运行正常,因此选择不启用cuDNN加速,所以Makefile.config中USE_CUDNN行是注释状态不改变。
- 为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 \\注意:这里的10.1.0和10.0.2根据不同的系统可能对应的数字会不同,比如在ubuntu16.04中其数字就是10.1.0. \\具体的数字可以在输入命令时候使用tab键补全查看
- 打开makefile文件搜索并替换
NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
-
$ sudo gedit ~/.bashrc
- 在打开的文件末尾加上:
export LD_LIBRARY_PATH="/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH”
- 在命令行输入:
sudo ldconfig #编译立即生效
- 然后进入caffe目录:
make all -j4 make test -j4 make runtest
- 这里runtest会报错如下:
- 解决方法是在~/.bashrc文件末尾添加输入一行,具体如下:
sudo gedit ~/.bashrc export MKL_CBWR=AUTO #打开的文件末尾加入该行,然后保存退出。 sudo ldconfig #编译立即生效
- 然后再来一遍
make clean make all -j4 make test -j4 make runtest
- 正确结果是如下:
- 如果编译没有报错,则基本没问题。在运用anaconda和matlab时都需要修改相应的内容。
- anaconda需要将caffe头文件进行链接:
$ sudo gedit ~/.bashrc
- 输入
export PYTHONPATH="/home/jeson/caffe/python:$PYTHONPATH"
- 保存后在命令行输入:
sudo ldconfig make pycaffe make distribute ipython import caffe
- 最后如果没有跳出错误则说明编译成功,即可调用caffe模块。
- 将matlab下的libstdc++.so.6 更改名称为libstd++.so.6_back(让matlab找不到这个,但是为了安全还是备份一下吧),这样在执行matlab编译的时候会自动去找系统用的库。具体为:
cd /usr/local/MATLAB/R2014a/sys/os/glnxa64/ sudo mv libstdc++.so.6 libstdc++.so.6_back sudo ldconfig cd ~/caffe/ make matcaffe make mattest
- 出现下图说明编译正确:
- 测试matlab打开./caffe/matlab/+caffe/private,看有没有生成一个caffe的mex文件,可以运行+test文件夹里面的程序测试。
- 安装各种依赖包
- 至此,暂时应该算是安装完成。
遇到的一些问题:
1.can not find "hdf5.h":
解决:
# Whatever else you find you need goes here.
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/hdf5/serial
解决:
Makefile.config
INCLUDE_DIRS
/usr/include/hdf5/serial/
Makefile
LIBRARIES
hdf5_hl and hdf5 改为 hdf5_serial_hl ,hdf5_serial
3. make: *** [.build_release/tools/convert_imageset.bin] Error 1
make: *** [.build_release/tools/upgrade_net_proto_text.bin] Error 1
make: *** [.build_release/tools/upgrade_net_proto_binary.bin] Error 1
解决:
明显是OpenCV出了问题,网上查阅后,得知是因为lib文件opencv_imgcodecs
在Makefile
文件中未添加,修改如下:
参考网站:
http://www.codexiu.cn/Linux/blog/32754/ubuntu16.04安装caffe
http://blog.youkuaiyun.com/forest_world/article/details/51371560 Caffe研究实践 一 ------环境搭建
http://blog.youkuaiyun.com/isuccess88/article/details/70165726 在Ubuntu上用python3安装caffe(仅CPU)
http://blog.youkuaiyun.com/lien0906/article/details/46816243Caffe 安装错误记录及解决办法
http://blog.youkuaiyun.com/hjxu2016/article/details/69389597Ubuntu ldconfig(解决*.so不是符号连接)
http://blog.youkuaiyun.com/billbliss/article/details/73498307(含软连接修改的分析) 安装caffe 出现libcurl.so.4: no version information available (required by cmake)
http://blog.youkuaiyun.com/huangkangying/article/details/53406370OpenCV 3.1下载 ippicv_linux_20151201失败
http://blog.youkuaiyun.com/yhaolpz/article/details/71375762Ubuntu16.04 Caffe 安装步骤记录(超详尽)
http://www.jianshu.com/p/663029044efdUbuntu16.04+matlab2014a+anaconda2+OpenCV3.1+caffe安装
http://www.idcfree.com/article-1889-1.htmlUbuntu 16.04 +cuda8.0+cudnn+caffe+theano+tensorflow配置明细
http://blog.youkuaiyun.com/u014696921/article/details/53143176
ubuntu16.04+nvidia gt740m+cuda7.5+caffe安装、测试经历