为什么运行vl_nnrelu时MatConvNet库无法正常工作?

时间:2016-06-03 20:46:25

标签: matlab machine-learning computer-vision conv-neural-network

我正在做practical/exercises学习使用MatConvNet并尝试运行:

% -------------------------------------------------------------------------
% Part 1.2: Non-linear gating (ReLU)
% -------------------------------------------------------------------------

w = single(repmat([1 0 -1], [1, 1, 3])) ;
w = cat(4, w, -w) ;
y = vl_nnconv(x, w, []) ;
z = vl_nnrelu(y) ;

figure(6) ; clf ; colormap gray ;
subplot(1,2,1) ; vl_imarraysc(y) ;
subplot(1,2,2) ; vl_imarraysc(z) ;

但是当我这样做时,我在z = vl_nnrelu(y) ;上收到如下错误消息:

Error using vl_argparse (line 52)
The name of the parameter number 1 is not a string.

Error in vl_nnrelu (line 34)
opts = vl_argparse(opts, varargin, 'nonrecursive') ;

Error in exercise1 (line 52)
z = vl_nnrelu(y) ;
这对我来说似乎很奇怪。我也没有运行他们提供的matconvnet库和他们的教程,因为它似乎不适合我(而是从他们的网站获得最新的...)。还有其他人遇到过类似的错误吗?

2 个答案:

答案 0 :(得分:5)

由于使用VLFeat中的 vl_argparse 而不是MatConvNet,会出现此问题。要解决此问题,请先加载 vl_setup (VLFeat设置),然后加载 vl_setupnn (MatConvNet设置)。

答案 1 :(得分:1)

我今天遇到了完全相同的问题,并开始查看错误发生的vl_argparse.m文件。

我实际上不知道vl_nnrelu函数与此有什么关系所以我在' vl_nnrelu.m'中评论了以下内容:

% opts = vl_argparse(opts, varargin, 'nonrecursive') ;

然后我再次尝试运行exercise1文件并且它有效。