vl_nnconv.mexw64找不到指定模块
阅读原文时间:2023年07月09日阅读:1

在Installing and compiling the library——matconvnet-1.0-beta25时遇到的错误,总是提示“Invalid MEX-file

'C:\Users\hp\Documents\MATLAB\low_dose_CT-master\matconvnet-1.0-beta24\matlab\mex\vl_nnconv.mexw64':

找不到指定的模块。”vl_nnconv.mexw64找不到指定模块。

按照网址“https://www.vlfeat.org/matconvnet/install/#compiling”提示的,去安装matconvnet,在提示符输入“vl_compilenn”,又报错“警告: CL.EXE not found in PATH. Trying to

guess out of mex setup. ”“'cl.exe' 不是内部或外部命令,也不是可运行的程序

或批处理文件。 ”一时不知道如何是好?

估计是在电脑上没有真正安装visual studio的问题。为了用这个matconvnet,真是费劲。先是换了显卡,因为matlab里要求运行这个相应的代码需要英伟达的compiler,driver。好了装了显卡,安装了nvidia cuda 10.2,同时还要注意和安装的cudnn的版本要对上。

最后在C盘下Microsoft Visual Studio找到installer文件夹下setup.exe文件,去安装Microsoft Visual Studio community 2017,安装好了以后重启就可以用了。再次运行“vl_compilenn”M文件,报错“Could not find a valid NVCC executable”,在这个网址“https://blog.csdn.net/NeoLy123/article/details/104297741”里,作者提供了一个思路——需要指定我们电脑上安装CUDA的根目录,所以可以输入的命令:vl_compilenn('enableGpu', true, 'cudaRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2')。注意这里我安装的cuda版本是10.2,找到它。然后运行了一阵,还是报错:“nvcc fatal : Unsupported gpu architecture 'compute_86' ”。出现这个问题的原因是因为我装的cuda和matlab不兼容。应该是我的显卡3060算力(computing capability)达到8.6,而当前matlab版本达不到这个算力。具体匹配那个matlab版本,需要到英伟达官网查。这个网址上“https://zhuanlan.zhihu.com/p/356805461”也给我们提供了有用的信息。

对于提示“找不到cl.exe”,这个在安装了visual studio 2015版本以上以后(几个G),如果还出现这个问题,那就是没有找到cl.exe文件,我们在visual studio下找到这个文件,把visual studio的安装路径,以及cl.exe所在路径都添加到系统环境变量里面去,然后这个“找不到cl.exe”错误就能避免。

搞了好些天,发现为了跑通一段代码,compiling matconvnet,真正的困难其实是硬件搭建。摸索半天,这个问题其实思路应该这样。首先为了解决这个问题,要搞清楚自己的硬件到底怎么搭。装什么版本的cuda,装什么版本的matlab,什么版本的vs,什么版本的cudnn。这网站上的信息是有帮助的:

https://zhuanlan.zhihu.com/p/356805461

从而,我们知道这样配置“配置matconvnet:Window10+MATLAB R2015b+VS2015+cuda9.1+cudnn7.1.3”更可能是可行的:

https://blog.csdn.net/weixin_35642839/article/details/116038545

这样配置“R2015b+CUDA7.5+vs2013深度学习网络GPU搭建”可能是可行的。

https://blog.csdn.net/ccsss22/article/details/112572493

自己错在那里,你想matlab r2015b,cuda10.2,vs2015这样的配置,不符合搭建配置呀。搞半天。。。

重新装了matlab r2021a,再来搞,结果报这样的错“Failed to run C:/TDM-GCC-64/VC/bin/cl.exe (系统找不到指定的文件。). ”打开TDM-GCC-64这个文件夹,发现下面压根就没有vc文件夹,把“Microsoft Visual Studio 12.0\VC”下的整个VC搞过去。运行还是出错,后面重新装了vs 2022,再运行还是报错“c:\program files\nvidia gpu computing toolkit\cuda\v11.1\include\crt/host_config.h(238) : fatal error C1083: Cannot open include file: 'crtdefs.h': No such file or directory

”“出错 vl_compilenn (第 485 行) nvcc_compile(opts, srcs{i}, objfile, flags.nvcc)”。