matconvnet 上的残留网络单元格内容参考错误

residual network cell content reference error on matconvnet

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

欢迎任何想法

提前致谢

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