我正在使用mathconvnet 1.0 beta24。我可以正确安装和编译工具箱。当我在网站上关注快速入门时(http://www.vlfeat.org/matconvnet/quick/); 我开始;
untar('http://www.vlfeat.org/matconvnet/download/matconvnet-1.0-beta24.tar.gz') ;
cd matconvnet-1.0-beta24
run matlab/vl_compilenn ;
之后代替imagenet-vgg-f模型我想使用其中一个resnet模型,所以我继续;
urlwrite(...
'http://www.vlfeat.org/matconvnet/models/imagenet-resnet-50-dag.mat', ...
'imagenet-resnet-50-dag.mat') ;
run matlab/vl_setupnn ;
net = load('imagenet-resnet-50-dag.mat') ;
这部分工作正常,但是当我运行以下命令时;
net = vl_simplenn_tidy(net) ;
我收到以下错误;
来自非单元数组对象的单元格内容引用。
Error in vl_simplenn_tidy (line 47)
layer = net.layers{l} ;
imagenet-vgg-f模型工作正常,但是当我尝试使用resnet模型时,我得到了错误。我不知道如何解决这个问题。这对我来说非常重要,因为我是一名新手。
赞赏任何想法
提前致谢
答案 0 :(得分:0)
如果我没记错的话,ResNet使用DAGNN(即网络是有向无环图)。 VGG很简单。所以你不能将vl_simplenn_tidy用于ResNet。该错误是由使用{}访问net.layers引起的。在DAGNN中,您只能通过()访问图层,因为它是一个matlab结构数组,而不是单元格数组。也就是说,dagNN和simplenn之间还存在其他差异。所以你不能在dagNN上使用vl_simplenn_tidy()。