在复现 https://github.com/lawy623/SVS 这篇文章代码的时候,配置环境遇到了很多问题,这里做一个总结
环境:Ubuntu 16.04 + CUDA8.0 + CUDA9.0 + cuDNNv7 + MATLAB R2017b
编译Caffe
命令:make all -j8
一开始根据 python3.0 修改 Makefile.config 文件,结果编译的时候出现很多错误
后来根据 https://blog.csdn.net/artprog/article/details/79271388 这篇文章进行配置(据说弄 python3.0 的很容易出错),除此以外还要将 MATLAB_DIR 改为本机MATLAB路径(如/usr/local/MATLAB/R2017b)
配置完也会出错,原因是某个文件中有个函数的参数带了默认值(形如 const XXX = Dtype(1,0)),去掉后面的默认值(= Dtype(1,0)),即可编译成功
(似乎还有其他的编译问题,百度报错即可解决)
编译 Caffe 与 MATLAB接口
命令:make matcaffe
结果:生成 MEX 文件(caffe_.mexa64)
测试 Caffe 与 MATLAB接口
命令:make mattest -j8
一开始用的是Matlab R2017b,结果报错无数条 caffe_.mexa64 缺失需要的符号“XXXXXXX”
经查找,是MATLAB版本太高造成的,于是安装MATLAB R2015b,报错减为一条 缺失需要的符号“ZXXXXXX”
根据 https://github.com/BVLC/caffe/issues/3934 在 /usr/local/MATLAB/R2015b/bin/glnxa64 执行下列命令
sudo mv libopencv_imgproc.so.2.4 libopencv_imgproc.so.2.4.bak
sudo
mv libopencv_highgui.so.2.4 libopencv_highgui.so.2.4.bak
sudo
mv libopencv_core.so.2.4 libopencv_core.so.2.4.bak
sudo
ln /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.9 libopencv_core.so.2.4
sudo
ln /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.9 libopencv_highgui.so.2.4
sudo
ln /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4.9 libopencv_imgproc.so.2.4
make mattest -j8 通过
运行 train_viewSyn.m
终端报错
Check failed: status == CUBLAS_STATUS_SUCCESS (13 vs. 0) CUBLAS_STATUS_EXECUTION_FAILED
将 Makefile.config 文件中 CUDA 路径改为cuda-8.0 即可通过