5.解决编译器gcc/g++版本问题。
因为Ubuntu 15.04的gcc/g++版本是4.9.2,而Matlab 2014a(2015a)的版本是4.7.x所以在使用matla调用mex文件的时候,基本上都会报错,根据报错信息,考虑如下两步解决方案。
A. 降级安装gcc/g++版本为4.7.x
B. 暴力引用新版本GLIBCXX_3.4.20
$ sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6.0.20 $ cd /usr/local/MATLAB/R2014a/sys/os/glnxa64 $ sudo mv libstdc++.so.6 libstdc++.so.6.backup $ sudo ln -s libstdc++.so.6.0.20 libstdc++.so.6 $ sudo ldconfig -v通过命令“strings /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已经成功包含了GLIBCXX_3.4.21,如果已经存在,基本上就成功了。
第四部分 Caffe-Master的安装和测试一. 安装BLAS
这里可以选择(ATLAS,MKL或者OpenBLAS),我这里使用MKL,因为它最快。首先下载并安装英特尔® 数学内核库 Linux* 版MKL(Intel(R) Parallel Studio XE Cluster Edition for Linux 2016),下载链接是:https://software.intel.com/en-us/qualify-for-free-software/student, 使用学生身份(邮件 + 学校)下载Student版,填好各种信息,可以直接下载,同时会给你一个邮件告知序列号。下载完之后,要把文件解压到home文件夹(注意任何一级文件夹不能包含空格,否则安装会失败)
PS: 安装的时候,建议使用root权限安装,过程中会要求输入Linux的root口令。(设置方法:命令行:$ sudo passwd)
二. MKL与CUDA的环境设置
1.新建intel_mkl.conf, 并编辑之:
2.新建cuda.conf,并编辑之:
$ sudo gedit /etc/ld.so.conf.d/cuda.conf /usr/local/cuda/lib64 /lib3.完成lib文件的链接操作,执行:
$ sudo ldconfig -v三.安装OpenCV 3.1.0
1.下载并编译OpenCV(官网原版OpenCV:), 或者使用我提供的修改版的安装包(前面的百度云下载)(下面的安装方式使用该包完成,安装包修改了dependencies.sh文件并增加了OpenCV 3.0.0的安装文件)
2.切换到文件保存的文件夹,然后安装依赖项和OpenCV:
保证网络畅通,因为软件需要联网这里时间较长,请耐心等待。。。
四、安装其他依赖项
1.Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:
如果没有权限就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 装完之后,这个文件夹就可以kill了。
2.其他依赖项,确保都成功
$ sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler protobuf-c-compiler protobuf-compiler Python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags cython ipython五、安装Caffe并测试
1.切换到Caffe-master的文件夹,生成Makefile.config配置文件,执行:
4.配置Makefile.config文件(仅列出修改部分)
a. 启用CUDNN,去掉”#”