程序员人生 网站导航

Ubuntu16.04+matlab2014a+anaconda2+OpenCV3.1+caffe安装

栏目:数据库应用时间:2016-08-11 08:32:19

本次安装caffe是在新的笔记本上,感觉与之前在台式机上的安装还是有1定的区分。加上是在新的ubuntu16.04系统上安装的,可参考教程较少。而且其中添加了很多库,修改的1些毛病,难免会有遗漏。如果发现本文未提及毛病,欢迎1起讨论学习。另外,看到有的人说安装了半个多月,屡次重装,希望有问题还是先把问题查清楚,不要盲目重装系统;其次,安装的时候最好记录自己安装的进程和内容,避免遗漏和重复,出问题了也能够与他人的教程相对照。
首先介绍安装条件和软件准备:
- 联想笔记本电脑Y700⑴5ISK,双显卡nvidia的GTX960M,内存16G
- Ubuntu16.04系统,选择该系统主要是能够完善支持新笔记本的所有硬件
- cuda7.5安装与配置,cudnn5.0安装与配置
- BLAS安装与配置
- OpenCV3.1.0安装与配置
- Python安装与配置,选择的是anaconda2⑷.0,即python2.7
- matlab2014a下载与安装,下载链接http://pan.baidu.com/s/1c2I6UTM ,密码jdit
- caffe官网下载与安装

参考博客与文章:
ubuntu16.04系统cuda7.5安装教程:https://www.pugetsystems.com/labs/hpc/NVIDIA-CUDA-with-Ubuntu⑴6-04-beta-on-a-laptop-if-you-just-cannot-wait⑺75/
caffe官网教程:http://caffe.berkeleyvision.org/installation.html
ubuntu16.04系统cuda7.5配置与caffe安装教程:http://blog.csdn.net/g0m3e/article/details/51420565
ubuntu14.04系统上caffe安装:http://www.cnblogs.com/platero/p/3993877.html

1、Ubuntu16.04系统安装

这1部份接触过ubuntu系统的应当比较熟习,网上也有很多可以参考的例子,就不再赘述。另外,我是在1个SSD固态硬盘上单独安装的系统,之前在台式机上也是这么实现的,感觉这样和windows双系统故障会少些。

2、显卡驱动与cuda安装

1、显卡驱动安装

安装完ubuntu16.04系统以后,直接更新系统并重启。在多显卡的笔记本中,可能需要在BIOS系统里选择”自由选择显卡“,这样系统才能辨认nvidia的显卡,并进行驱动更新。我这里是应用ppa更新的最新驱动,使用起来能够得到挺好的体验,并能够实现双显卡的自由切换。
首先,通过快捷键Ctrl+Alt+T打开终端,然后加入官方ppa源:

$ sudo  add-apt-repository ppa:graphics-drivers/ppa

需要输入用户密码,并确认链接源。以后刷新软件库并安装最新的驱动,在命令行输入:

$ sudo apt-get update
$ sudo apt-get install nvidia⑶67 nvidia-settings nvidia-prime

由于联想笔记本的UEFI保护,会谢绝第3方的驱动,因此需要关闭该保护,关闭以后重启能够正常驱动nvidia,并能够进行双显卡的切换。
安装完成以后,可以通过系查看系统属性,看是不是是nvidia的显卡。另外,也能够通过下面命令看是不是安装成功:

$ nvidia-settings

nvidia settings界面

如果出现的nvidia设置界面不是这样,驱动可能还是有问题。此处我出现的毛病主要是是UEFI保护没注意到,致使重复安装了几遍。

2、cuda7.5 安装与配置

首先下载cuda7.5.run文件,以下图所示:
cuda7.5下载版本
可以看到当前cuda7.5还不支持ubuntu16.04。参考他人的教程,主要是gcc版本的问题,实际是可以编译通过的。下载完15.04版本的run文件以后,1定要进行进行md5检验,校验码不对会出现安装以后重启不能进入界面的问题。
下载完成以后,cd进入文件所在目录,在终端进行以下操作

$ chmod 777 cuda_7.5.18_linux.run     #获得文件权限
$ sudo ./cuda_7.5.18_linux.run --override #履行文件安装

注意后面的override是必须的,这样才能保证安装的进程中,不会出现编译器不支持的毛病。另外,在选择条件的进程中,1定不要再次安装nvidia驱动,虽然cuda.run文件本身是包括又nvidia驱动的,但是本处直接安装会出错。下图是安装.run文件的配置:
cuda.run文件安装界面
安装完成以后会出现

============ Summary ============
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda⑺.5
Samples: Installed in /usr/local/cuda⑺.5

以后更换cudnn动态库,可以取得更快的计算效力。下载完cudnn5.0以后进行解压,cd进入cudnn5.0解压以后的include目录,在命令行进行以下操作:

$ sudo cp cudnn.h /usr/local/cuda/include/    #复制头文件

再将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

使链接立即生效。

3、cuda用例安装与测试

在安装cuda.run文件时,我们已选择安装了samples用例,还需要编译。由于当前的cuda还不支持gcc5.0以上的版本,在编译之前,我们需要修改配置文件,否则没法编译成功。在终端输入:

$ cd /usr/local/cuda⑺.5/include
$ cp host_config.h host_config.h.bak   #备份编译头文件
$ sudo gedit host_config.h

然后在115行修改编译其支持的版本:

# if GNUC > 4 || (GNUC == 4 && GNUC_MINOR > 9)
# error – unsupported GNU version! gcc versions later than 4.9 are not supported!
# endif /* GNUC > 4 || (GNUC == 4 && GNUC_MINOR > 9) */

将if后面连续两个4改成5便可,然落后入用例文件进行编译:

$ cd /usr/local/cuda/samples
$ sudo make all -j4
$ cd /usr/local/cuda/samples/bin/x86_64/linux/release
$ sudo ./deviceQuery

成功以后会出现以下信息:

CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: “GeForce GTX 960M”
CUDA Driver Version / Runtime Version 8.0 / 7.5
CUDA Capability Major/Minor version number: 5.0
Total amount of global memory: 4044 MBytes (4240375808 bytes)
( 5) Multiprocessors, (128) CUDA Cores/MP: 640 CUDA Cores
GPU Max Clock rate: 1176 MHz (1.18 GHz)
Memory Clock rate: 2505 Mhz
Memory Bus Width: 128-bit
L2 Cache Size: 2097152 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 1 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 7.5, NumDevs = 1, Device0 = GeForce GTX 960M
Result = PASS

通过上述用例测试,就表明显卡驱动安装和cuda安装完全成功了。

2、BLAS安装与配置

BLAS(基础线性代数集合)是1个利用程序接口的标准。caffe官网上推荐了3种实现:ATLAS, MKL, or OpenBLAS。其中atlas可以直接通过命令行安装,在此不再介绍。我采取的是intel的mkl库,首先,通过上面链接在intel官网申请学生版的Parallel Studio XE Cluster Edition ,下载完成以后cd到下载目录进行安装:

$ 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

安装完成以后,进行相干文件的链接:

$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf

在打开的文件中添加库文件:

/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64

添加完成以后,编译链接时lib文件立即生效:

$ sudo ldconfig

3、OpenCV3.1.0安装与配置

首先安装必要的库,有的依赖库我是已安装过的,具体安装的前后关系已忘了。如果出现有些依赖关系不满足的毛病,可以再安装库:

$ sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev    # 必要的基本库

根据上面的链接下载OpenCV3.1.0版本,并进行解压,解压以后进入安装文件目录:

$ cd opencv⑶.1.0
$ mkdir build          #创建build文件夹
$ cd opencv⑶.1.0/build
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..  
$ #生成的文件在bulid中,而生成的CMakeList.txt文件在上1级文件中

在configure进程中进程中,可能会出现下面的毛病:

– ICV: Downloading ippicv_linux_20151201.tgz…

在直接下载该文件的进程中,会由于超时而失败,可以下载http://download.csdn.net/detail/yehuohan/9511463, 并替换掉 opencv⑶.1.0/3rdparty/ippicv/downloads/linux⑻b449a536a2157bcad08a2b9f266828b下的同名文件,然后再次cmake便可。生成编译文件以后,在opencv⑶.1.0/build目录下,终端输入:

$ make -j4       #4核运算
$ sudo make install

此时,可能会出现另外1个毛病:

/usr/include/string.h: In function ‘void* __mempcpy_inline(void*, const void*, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n;

这也是由于ubuntu16.04的个个g++版本太高的酿成的,只需要在opencv⑶.1.0目录下的CMakeList.txt 文件的开头加入:

set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -D_FORCE_INLINES”)

添加上后再次进行编译链接便可。

4、python安装与配置

python的安装有两种方式:1种是系统自带的python,只需再安装相应的库便可;第2种是直接安装anaconda,很多相应的库已包括了。第1种直接安装库文件比较简单,不需要修改相应的包括路径和库文件。本人由于习惯了anaconda,因此选择的是anaconda linux64 2.7版本(3.5版本我也试过,装caffe的时候可能会比较麻烦)。下载完成以后,最好也要进行md5sum的检验。完成以后,cd进入下载文件所在的目录,在命令行输入:

$ bash Anaconda2⑷.0.0-Linux-x86_64.sh

安装完成以后,在.bashrc中添加Anaconda的库文件,1定不要在/etc/profile文件中添加。由于anaconda有几个链接库和系统链接库文件类似,如果添加到/etc/profile文件中,会出现电脑重启以后不能进入界面的情况

$ sudo gedit ~/.bashrc

然后加入库文件:

export PATH=”/home/lyndon/anaconda2/bin:PATHexportLDLIBRARYPATH=/home/lyndon/anaconda2/lib:LD_LIBRARY_PATH”

重启电脑以后,在命令行输入:

$ ipython

就能够看到python的版本,并进行应用了。

5、matlab的安装与配置

在网盘上下载安装包及Crack破解文件以后,解压两个紧缩文件,并用Crack文件中的install替换matlab2014安装目录下/java/jar/下的install文件。然后在命令行cd进入matlab2014目录,输入:

$ sudo ./install

1、选择“不联网安装”;
2、当出现密钥时,随便输入20个数字12345⑹7890⑴2345⑹7890便可;
3、选择自己需要安装的工具;
4、需要激活时选择不要联网激活,应用Crack目录下的“license_405329_R2014a.lic”文件作为激活文件
安装完成以后,还要将Crack/linux目录下的libmwservices.so文件拷贝到/usr/local/MATLAB/R2014a/bin/glnxa64。在Crack/linux目录下的命令行输入:

$ sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64
安装完成以后,直接在命令行输入matlab,就可以过进行使用了

6、caffe的安装与配置

首先,安装caffe必要的库文件:protobuf, glog, gflags, hdf5

$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

安装以后,anaconda利用时还是会出现毛病。此时用anaconda的安装工具conda 再安装必要文件就好了,我安装了以下文件,后续ipython中就可以够用caffe了。

$ conda install libprotobuf-dev libleveldb-dev 

安装完成以后,进入caffe下载的文件目录,在命令行输入:

$ sudo cp Makefile.config.example Makefile.config # 备份配置文件
$ gedit Makefile.config  # 修改编译文件

配置文件主要修改:

USE_CUDNN := 1 #取消注释,利用cudnn
OPENCV_VERSION := 3 #取消注释,利用opencv3
BLAS := mkl #BLAS库利用英特尔的mkl
ANACONDA_HOME := /home/lyndon/anaconda2
PYTHON_INCLUDE := (ANACONDAHOME)/include (ANACONDA_HOME)/include/python2.7 \
(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \  #选用anaconda作为python工具  
  INCLUDE_DIRS :=
(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial #加入了 /usr/include/hdf5/serial,避免找不到hdf5.h毛病

在make进程中可能 string.h ‘memcy’ was not declared in this scope的毛病是,这也是由于ubuntu中gcc编译器版本太新,解决方法是打开Makefile文件,搜索并修改:

改 NVCCFLAGS += -ccbin=(CXX)XcompilerfPIC(COMMON_FLAGS)
为 NVCCFLAGS += -D_FORCE_INLINES -ccbin=(CXX)XcompilerfPIC(COMMON_FLAGS)

还可能出现:/usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_size@XZ_5.0’,解决改问题只需要添加库文件路径就行,在home目录下的命令行输入:

$ sudo gedit ~/.bashrc

在文件中加入:

export LD_LIBRARY_PATH=”/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH”

在命令行输入:
sudo ldconfig #编译立即生效,然落后入caffe所在目录 cd /home/lyndon/lyndon/caffe/caffe-master
make all -j4 #编译文件 make test -j4 #编译测试文件
makeruntest make pycaffe
$ make matcaffe
如果编译都没报错,则表示基本成功,能够通过用例进行测试了。在应用anaconda和matlab时都需要修改相应的内容。
anaconda需要将caffe头文件进行链接:

$ sudo gedit ~/.bashrc

export PYTHONPATH=”/home/lyndon/lyndon/caffe/caffe-master/python:$PYTHONPATH”
以后编译链接库,打开ipython,输入:

$ import caffe

便可调用caffe相应模块了。matlab模块可以直接测试caffe/matlab/+caffe的用例。

7、总结

至此,ubuntu16.0下的caffe等相干文件全部安装终了,其中问题最多的应当是双显卡问题中的nvidia驱动安装的问题,很有可能会驱动不起来,最好弄明白自己出错的缘由,不然重装系统也没用。其次,在安装anaconda进程中,有些教程建议把库文件加入到/etc/profile环境中,这可能会造成电脑重启没法进入桌面的问题。其余的问题都应当不会造成电脑不能重启不能进入桌面的情况,可以直接google和百度解决。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐