matconvnet中使用fastrcnn遇到的问题

这几天用了matconvnet(MATLAB下的深度学习工具)踩了好几个坑,还好最终总算是能用了。现在把其中遇到的坑总结一下。

matconvnet的官网:http://www.vlfeat.org/matconvnet/

按照官网上的说明,其实在windows和cpu下编译,完全没问题。基本上不用改什么地方,按照官网说明就一遍过了。

当需要训练网络的时候,把代码搬到linux和gpu上,就出现了一些问题,这里把这些问题记录一下。


1.编译过了,但是运行fast-rcnn的demo的时候,报错如下:

Invalid MEX-file '/data/zycui_data/code/matconvnet-1.0-beta25/matlab/mex/vl_imreadjpeg.mexa64':
Missing symbol '_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv' required by
'/data/zycui_data/code/matconvnet-1.0-beta25/matlab/mex/vl_imreadjpeg.mexa64'
Missing symbol '_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv' required by
'/data/zycui_data/code/matconvnet-1.0-beta25/matlab/mex/vl_imreadjpeg.mexa64'
Missing symbol '_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv' required by
'/data/zycui_data/code/matconvnet-1.0-beta25/matlab/mex/vl_imreadjpeg.mexa64'
Missing symbol '_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv' required by
'/data/zycui_data/code/matconvnet-1.0-beta25/matlab/mex/vl_imreadjpeg.mexa64'
Missing symbol '_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv' required by
'/data/zycui_data/code/matconvnet-1.0-beta25/matlab/mex/vl_imreadjpeg.mexa64'
Missing symbol '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc' required by
'/data/zycui_data/code/matconvnet-1.0-beta25/matlab/mex/vl_imreadjpeg.mexa64'
Missing symbol '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm' required by
'/data/zycui_data/code/matconvnet-1.0-beta25/matlab/mex/vl_imreadjpeg.mexa64'
Missing symbol '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_' required by
'/data/zycui_data/code/matconvnet-1.0-beta25/matlab/mex/vl_imreadjpeg.mexa64'
Missing symbol '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm' required by
'/data/zycui_data/code/matconvnet-1.0-beta25/matlab/mex/vl_imreadjpeg.mexa64'
Missing symbol '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_' required by
'/data/zycui_data/code/matconvnet-1.0-beta25/matlab/mex/vl_imreadjpeg.mexa64'
Missing symbol '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_' required by
'/data/zycui_data/code/matconvnet-1.0-beta25/matlab/mex/vl_imreadjpeg.mexa64'
Missing symbol '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1


造成这个现象的原因是libstdc++.so.这个文件。在Windows下没什么问题,但是linux系统有这个文件,matalb自己也有这个问题,所以发生了调用了错误。为了修正这个错误,可以设置一下让matlab调自己的库而不是系统的库。通过在命令行里设置并打开MATLAB就可以了

链接如下: https://stackoverflow.com/questions/43643670/runtime-linker-error-using-thrust-in-matlab-mex-file

2.也是编译通过了,跑demo的时候报错,

CUDA_ERROR_ILLEGAL_ADDRESS

查了很久,也没有查到什么解决办法,matconvnet官方也没有说怎么解决,只是有人提出了编译的时候使用cudnn就不会有这个错误了,我试了一下,还真是这样,所以编译的时候,把cudnn加上就好了。

连接:https://github.com/vlfeat/matconvnet/issues/65#issuecomment-164496925


你可能感兴趣的:(机器学习与深度学习)