运行MatConvNet的Quick start例子时出现错误:Attempt to execute SCRIPT vl_nnconv as a function

上篇文章谈到安装MatConvNet时遇到的问题(https://blog.csdn.net/w1301100424/article/details/80602145),这篇文章就运行MatConvNet官网上的例子时出现的问题和解决方法作简单描述。代码如下:

% Install and compile MatConvNet (needed once).
untar('http://www.vlfeat.org/matconvnet/download/matconvnet-1.0-beta25.tar.gz') ;
cd matconvnet-1.0-beta25
run matlab/vl_compilenn ;

% Download a pre-trained CNN from the web (needed once).
urlwrite(...
  'http://www.vlfeat.org/matconvnet/models/imagenet-vgg-f.mat', ...
  'imagenet-vgg-f.mat') ;

% Setup MatConvNet.
run matlab/vl_setupnn ;

% Load a model and upgrade it to MatConvNet current version.
net = load('imagenet-vgg-f.mat') ;
net = vl_simplenn_tidy(net) ;

% Obtain and preprocess an image.
im = imread('peppers.png') ;
im_ = single(im) ; % note: 255 range
im_ = imresize(im_, net.meta.normalization.imageSize(1:2)) ;
im_ = im_ - net.meta.normalization.averageImage ;

% Run the CNN.
res = vl_simplenn(net, im_) ;

% Show the classification result.
scores = squeeze(gather(res(end).x)) ;
[bestScore, best] = max(scores) ;
figure(1) ; clf ; imagesc(im) ;
title(sprintf('%s (%d), score %.3f',...
   net.meta.classes.description{best}, best, bestScore)) ;

当程序运行到“res = vl_simplenn(net, im_)”时出现了错误,提示如下:

运行MatConvNet的Quick start例子时出现错误:Attempt to execute SCRIPT vl_nnconv as a function_第1张图片

第一行说试图将vl_nnconv脚本作为函数执行。

打开vl_nnconv.m文件一看,发现全是注释,只有最后一行代码,不带参数,而函数是可以带参数的。

程序错误的把该脚本当作函数执行了,可以发现在“D:\Software\matconvnet-1.0-beta25\matlab”路径下存在两个vl_nnconv文件,一个是vl_nnconv.m,另一个是vl_nnconv.mexw64(在mex文件夹中),而程序要调用的实际上是vl_nnconv.mexw64。

现修改vl_nnconv.m文件名为vl_nnconv_c.m,这样程序就能找到vl_nnconv.mexw64了(因为vl_nnconv.mexw64是在和vl_nnconv.m同一路径下的文件夹中,所以优先调用vl_nnconv.m)。

继续运行程序发现还存在错误:

运行MatConvNet的Quick start例子时出现错误:Attempt to execute SCRIPT vl_nnconv as a function_第2张图片

这个错误和之前的是一样的,同理,修改对应的文件名即可。运行程序:

运行MatConvNet的Quick start例子时出现错误:Attempt to execute SCRIPT vl_nnconv as a function_第3张图片

Reference:

[1] https://ww2.mathworks.cn/matlabcentral/answers/349744-attempt-to-execute-script-vl_nnconv-as-a-function

你可能感兴趣的:(学习笔记)