最近发现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()函数。