概述
git地址:https://www.robots.ox.ac.uk/~luca/cfnet.html
参考教程:
https://www.jianshu.com/p/bd5f49f900a3
https://blog.csdn.net/zhumiankuan/article/details/80402810
一、安装MatConvNet
下载地址:http://www.vlfeat.org/matconvnet/
解压后添加路径到matlab,
cd D:MATLAB2016btoolboxmatconvnet-1.0-beta25 %解压路径
addpath matlab
测试:
>> vl_compilenn
报错:
错误使用 vl_compilenn>check_compability (line
535)
Unsupported VS C++ compiler, ver >=14.0
required (VS 2015).
出错 vl_compilenn (line 197)
check_compability(arch);
解决:
安装高版本的C++编译器,参考:
https://blog.csdn.net/rong_toa/article/details/79002711
设置环境变量,添加到matlab环境中:
http://blog.sina.com.cn/s/blog_167bbdec10102x113.html
再测试报错
>> vl_compilenn
'cl.exe' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
错误使用 vl_compilenn>check_clpath (line 656)
Unable to find cl.exe
出错 vl_compilenn (line 426)
cl_path = fileparts(check_clpath()); % check
whether cl.exe in path
解决:
1、使用VS2017的C++编译器
其实我之前电脑有装VS2017的,但是matlab2016b和matlab2017a有个bug就是不能识别这个编译器,根据版本下载对应的补丁(https://ww2.mathworks.cn/support/bugreports/1487958?s_tid=mwa_osa_a)到matlab安装路径(在matlab中运行matlabroot语句可查看)中,将压缩包中对应的文件覆盖到安装路径对应的路径上。运行mex -setup修改默认编译器:
mex -setup
2、在我的电脑搜索cl.exe,我的cl.exe是在
D:Program Files (x86)Microsoft Visual Studio2017CommunitySDKScopeCppSDKVCbin
将其复制到MatConvNet的解压路径下即可。
再测试还报错
>> vl_compilenn
使用 'Microsoft Visual C++ 2017' 编译。
错误使用 mex
data.cpp
c1xx: fatal error C1060: 编译器的堆空间不足
百度谷歌了一天多,都无解,卒。生无可恋之时,抱着侥幸心理解压了之后下载的VITAL代码,发现里面也配送matconvnet工具箱,运行里面compile_matconvnet.m代码,出现警告: 名称不存在或不是目录,这个不管。然后再运行matconvnet下子文件夹matlab中的vl_compilenn.m,神了奇,竟然编译成功了:
>> cd D:TrackingbackupVital_release-masterVital_release-mastermatconvnet
>> addpath matlab
>> vl_compilenn %CPU
Starting parallel pool (parpool) using the 'local' profile ...
使用 'Microsoft Visual C++ 2017' 编译。
MEX 已成功完成。
至于GPU的编译依旧是困难重重啊
%把cudnn放在当前路径下的local里面,与matlab文件夹同级
>>addpath(genpath('当前路径'))
>>vl_compilenn('enableGpu',true,'cudaRoot','C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5', 'cudaMethod' ,'nvcc', 'enableCudnn','true', 'cudnnRoot','local/cuda') %GPU
报错
nvcc fatal : nvcc cannot find a supported version of Microsoft Visual Studio. Only the versions 2010, 2012, and 2013 are supported
解决:忘了查了百度谷歌多久了,无意间看到一个方法,结合自己的实际情况,我大胆地尝试了一下:
直接打开VS2013 x64 兼容工具命令提示
cd c:
"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.5binnvcc" -c "D:TrackingbackupVital_release-masterVital_release-mastermatconvnetmatlabsrcvl_imreadjpeg.cu" -DNDEBUG -DENABLE_GPU -DENABLE_CUDNN -Ilocal/cuda -D__SSSE3__ -I"D:MATLAB2016bexterninclude" -I"D:MATLAB2016btoolboxdistcompgpuexterninclude" -Xcompiler /MD -o "D:TrackingbackupVital_release-masterVital_release-mastermatconvnetmatlabmex.buildvl_imreadjpeg.obj"
注:上面这么长的一段其实我在matlab下断点中得到的,在vl_compilenn.m中的nvcc_compile函数里面打印输出nvcc_cmd这个变量,然后改一下xxx.cu文件所在的路径(打印输出的是相对路径,改为绝对路径)。
然后我一个个.cu文件就这样在VS2013 x64 兼容工具命令提示进行编译。总体是顺利的,除了nnpooling_cudnn.cu和nnconv_cudnn.cu外,对于这2个后来我把cudnn换成V4和V2也就好了。
对于后缀是.cpp的文件,直接在matlab运行就行(注释掉以下这一句代码
nvcc_compile(opts, srcs{i}, toobj(bld_dir,srcs{i}), flags.nvcc) ;
建议mex_compile和mex_link分开编译。如果不成功,就mex-setup换一个C++编译器,好像有的地方我用的是VS2012有的是VS2013。这样就大功告成了。
测试运行
>> vl_test_nnlayers
PS:偷懒快捷的方法
感谢这个博客的作者,http://blog.sina.com.cn/s/blog_679e13290102v6o8.html
直接用作者编译好的(windows-CPU)matconvnet-1.0-beta7(链接:http://pan.baidu.com/s/1o62thOI 密码:pqij),用VS2012的c++编译器(作者是VS2010),我也编译成功了!实在太感人了!
ps:vs2017找不到MFC解决方案:
https://jingyan.baidu.com/article/77b8dc7f8bdf216174eab689.html
下面这个是我经过上面重重困难编译成功的,大家可以试试能不能直接拿去用,就是先下载vital的代码,然后解压放在里面matlab文件夹里面,与src、xtest文件夹同级。祝好!
链接:https://pan.baidu.com/s/1LKUbdW4svhYRBDtedj1K4g 密码:4uza
后记:在CFnet作者用的是matconvnet-1.0-beta24,所以我又再搞了一次,发现GPU编译的时候老是出错,说什么Error using mex nvcc fatal : Unsupported gpu architecture ‘compute_61’,明明我在matlab运行gpuDevice第三行显示计算能力6.1来着。后来我尝试直接用vl_compilenn(‘enableGpu’,true)居然成功啦!测试了一下CFnet中tracking文件夹的代码
如果报错未定义函数或变量 ‘MulConst’。则先运行startup.m
>> run_cfnet1_evaluation
sub-seq 1/3
sub-seq 2/3
sub-seq 3/3
dist: 32.25 overlap: 60.94 fps: 24.6
这是我在WIN10 64位系统下编译后的matconvnet-1.0-beta24,有需要自取:
链接:https://pan.baidu.com/s/1xSZMgGkC_YVuERsexKoz7A 密码:k74v
最后
以上就是俊秀小蚂蚁为你收集整理的DL实战(3):cfNet- Matlab配置一、安装MatConvNet的全部内容,希望文章能够帮你解决DL实战(3):cfNet- Matlab配置一、安装MatConvNet所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复