我正在做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库和他们的教程,因为它似乎不适合我(而是从他们的网站获得最新的...)。还有其他人遇到过类似的错误吗?
答案 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文件并且它有效。