最近发现matlab2017 添加了很多训练好的网络,包括vgg16,vgg19等。属于极其方便的那种。比如安装了matlab2017a,输入help vgg16,就会有个 add on的按钮,跟着步骤傻瓜式点击,几下就安装好工具箱了。对于只是想用一下的人来说太方便了。

不过我在使用时,发现如果我想看网络中某一层的输出,帮助文档里并没有给例子说明。我从matlab官方网站上找到一个例子,感谢这位外国人啊。

来源:https://cn.mathworks.com/matlabcentral/answers/357669-how-to-get-the-maximum-activation-of-fc7-layer-of-vgg19?s_tid=srchtitle

net = vgg19;
im = imread('apple.jpg');
imshow(im)
imgSize = size(im);
imgSize = imgSize(1:2);
act5 = activations(net,im,'fc7','OutputAs','channels');
sz = size(act5);
act5 = reshape(act5,[sz(1) sz(2) 1 sz(3)]);
montage(imresize(mat2gray(act5),[48 48]))
[maxValue5,maxValueIndex5] = max(max(max(act5)));
act5chMax = act5(:,:,:,maxValueIndex5);
imshow(imresize(mat2gray(act5chMax),imgSize))
其实核心就是activations()函数。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐