Linux系统MatConvNet出错:Attempt to execute SCRIPT vl_nnconv as a function
Posted Z.Q.Feng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统MatConvNet出错:Attempt to execute SCRIPT vl_nnconv as a function相关的知识,希望对你有一定的参考价值。
一、项目场景
最近在 MATLAB
中使用 MatConvNet
时出现如下报错:
network forward for depth prediction...
Attempt to execute SCRIPT vl_nnconv as a function:
/home/zq/Documents/项目/SynthText-Myself/prep_scripts/libs/matconvnet/matlab/vl_nnconv.m
Error in my_nn_struct_forward (line 43)
res(i+1).x = vl_nnconv(res(i).x, l.filters, l.biases, 'pad', l.pad, 'stride', l.stride) ;
Error in do_model_evaluate (line 23)
res = my_nn_struct_forward(net, img_data, [], ...
Error in predict_depth>get_depth (line 95)
depth = do_model_evaluate(model, ds, opts);
Error in predict_depth (line 60)
depth = get_depth(img,model.(imtype),opts);
好奇的我打开 vl_nnconv.m
一看,居然全是注释没有内容!
解决办法
在 MATLAB 中使用 MatConvNet
是需要预先编译安装的,进入到你的 matconvnet-1.0-beta25
文件夹(就是 matlab 文件夹 和 mex 文件夹 所在的那个目录),在 MATLAB 命令行中运行如下命令:
cd matconvnet-1.0-beta25 % 设置MATLAB工作目录为此文件夹
run matlab/vl_compilenn ;
编译过程中若报错可参考此文章:MATLAB-matconvnet报错:Error using mex … error: ‘numeric_limits’ is not a member of ‘std’。
接着复制你的 mex
文件夹内的所有内容到 matlab
文件夹内:
Windows 下此文件后缀名为 .mexw64
,Linux 下为 .mexa64
。
以上是关于Linux系统MatConvNet出错:Attempt to execute SCRIPT vl_nnconv as a function的主要内容,如果未能解决你的问题,请参考以下文章
MatConvNet编译报错:mex/vl_nnconv.mexa64‘ compiled with ‘-R2018a‘ and linked with ‘-R2017b‘. 解决办法
CC 异常: net.sourceforge.cruisecontrol.CruiseControlException: Encountered an IO exception while attem