0

我正在使用 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 ;

之后,我想使用其中一个 resnet 模型而不是 imagenet-vgg-f 模型,所以我继续;

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 模型时出现错误。我不知道如何解决这个问题。这对我来说非常重要,因为我是一个新手。

任何想法表示赞赏

提前致谢

4

1 回答 1

0

如果我没记错的话,ResNet 使用 DAGNN(即网络是有向无环图)。VGG 是简单的。所以你不能将 vl_simplenn_tidy 用于 ResNet。该错误是由使用 {} 访问 net.layers 引起的。在 DAGNN 中,您只能通过 () 访问层,因为它是 matlab 结构数组,而不是元胞数组。也就是说,dagNN 和 simplenn 之间还有其他区别。所以你不能在 dagNN 上使用 vl_simplenn_tidy() 。

于 2017-06-07T19:16:43.557 回答