Ubuntu16.04+caffe+matlab2016b
JLU-IPVR
听笙
安装matlab2016b
下载matlab
下载地址:https://pan.baidu.com/share/init?surl=mhSXTfq
密码:79sb
下载后的文件提取后有三个文件 R2016b_glnxa64_dvd1.iso、R2016b_glnxa64_dvd2.iso和Matlab 2016b Linux64Crack文件夹。
注意:解压后Crack文件夹中包含readme.txt文件,里面包含密钥,license_standalone.lic文件,用于进行软件激活,/bin/glnx64/文件,用于进行matlab安装目录中bin/glnx64/的替换,里面四个文件。
挂载
直接挂载到/home/cvpr/matlab
sudo mount -o loop R2016b_glnxa64_dvd1.iso /home/cvpr/matlab/
安装
进入到挂载目录下,可以看到有install文件,然后返回当前目录进行安装。
sudo /home/cvpr/matlab/install
默认的安装路径是 /usr/local/下,安装到一半,提示拔出dvd1,然后插入dvd2。
sudo mount -o loop R2016b_glnxa64_dvd2.iso/home/cvpr/matlab/
激活
sudo chmod -R 777 MATLAB/
cd ~/Matlab 2016b Linux64 Crack/R2016b/bin/glnxa64/
sudo cp lib* /user/local/MATLAB/R2016b/bin/glnxa64/
cd /user/local/MATLAB/R2016b/bin/
./matlab
选择不联网激活,加载license_standalone.lic文件。
安装caffe
安装各种依赖包
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
安装opencv
推荐安装opencv2.14
下载caffe
可以使用git clone https://github.com/BVLC/caffe.git 本人感觉比较慢,所以直接在github上去搜索下载了=。=
进入 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
将:
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
将:
MATLAB_DIR := /usr/local
修改为:
MATLAB_DIR := /user/local/MATLAB/R2016b
修改Makefile文件
在CXXFLAGS += -MMP -MP下面加
CXXFLAGS += -std=c++11
将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
编译caffe
make all -j32
sudo make test -j32
这步一般不会有什么问题
编译matcaffe
make matcaffe -j32
这时候会警告gcc版本的过高问题,但是不用理它。
在make mattest 的时候会出现以下问题:
Invalid MEX-file'/home/matconvnet-1.0-beta20/matlab/mex/vl_nnconv.mexa64':
/usr/local/MATLAB/R2016b/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6:version
`GLIBCXX_3.4.21' not found (required by/home/matconvnet-1.0-beta20/matlab/mex/vl_nnconv.mexa64)
和
MEX-file'/home/zhangjiqing/caffe/matlab/+caffe/private/caffe_.mexa64'无效:
/home/zhangjiqing/caffe/matlab/+caffe/private/caffe_.mexa64: undefined symbol:
_ZN2cv8imencodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_11_InputArrayERSt6vectorIhSaIhEERKSB_IiSaIiEE。
出错 caffe.set_mode_cpu (line 5)
caffe_('set_mode_cpu');
出错 caffe.run_tests (line 6)
caffe.set_mode_cpu();
通过以下手段解决:
替换几个库文件
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4:/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4:/usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/usr/lib/x86_64-linux-gnu/libfreetype.so.6
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/
sudo rm -rf libopencv_core.so.2.4 libopencv_highgui.so.2.4libopencv_imgproc.so.2.4
sudo ln -s/usr/local/opencv-2.4.13/build/lib/libopencv_core.so.2.4.13libopencv_core.so.2.4
sudo ln -s /usr/local/opencv-2.4.13/build/lib/libopencv_imgproc.so.2.4.13libopencv_imgproc.so.2.4
sudo ln -s/usr/local/opencv-2.4.13/build/lib/libopencv_highgui.so.2.4.13libopencv_highgui.so.2.4
sudo ldconfig
若此时在make mattest 还出问题的话 采用暴力解决方案:
将 usr/local/MATLAB/R2016b/bin/glnxa64 中以下三个文件删除。(建议删除前进行备份)
libopencv_core.so.2.4
libopencv_highgui.so.2.4
libopencv_imgproc.so.2.4
OK了。