【caffe-windows】 caffe-master 之 卷积核可视化(利用matlab)
来源:互联网 发布:java流的分类好难记 编辑:程序博客网 时间:2024/06/01 07:12
此篇是利用matlab对caffemodel的卷积核进行可视化。只介绍了卷积核的可视化,不涉及特征图的可视化。
是参考此博客: http://blog.csdn.net/zb1165048017/article/details/52643188
前期准备,需要两个东西
1. 模型的描述文件 deploy.prototxt
2. 模型本身lenet_iter_10000.caffemodel (此处用的examples中的mnist里的)
第一步:
在创建D:\caffe-master\matlab\demo 下创建 visualizing.m
clcclearaddpath('..') % 加入+caffe路径 caffe.set_mode_cpu() ;% 设置CPU模式 model = 'D:/caffe-master/examples/mnist/lenet.prototxt'; % 模型描述 weights = 'D:/caffe-master/examples/mnist/lenet_iter_10000.caffemodel'; % 参数 net = caffe.Net(model,'test'); % 读取netweight_partvisual( net, 1,1) % 调用部分显示函数 weight_partvisual( net,layer_num ,channels_num ) % layer_num是第几个卷积层, channels_num 表示 % 显示第几个通道的卷积核,取值范围为 (0,上一层的特征图数)
第二步:
在创建D:\caffe-master\matlab\demo 下创建weight_partvisual.m
function [ ] = weight_partvisual( net,layer_num ,channels_num ) layers=net.layer_names; convlayer=[]; for i=1:length(layers) if strcmp(layers{i}(1:3),'con') convlayer=[convlayer;layers{i}]; end end w=net.layers(convlayer(layer_num,:)).params(1).get_data(); b=net.layers(convlayer(layer_num,:)).params(2).get_data(); w=w-min(w(:)); w=w/max(w(:))*255; weight=w(:,:,channels_num,:);%四维,核长*核宽*核左边输入*核右边输出(核个数) [kernel_r,kernel_c,input_num,kernel_num]=size(w); map_row=ceil(sqrt(kernel_num));%行数 map_col=map_row;%列数 weight_map=zeros(kernel_r*map_row,kernel_c*map_col); kernelcout_map=1; for i=0:map_row-1 for j=0:map_col-1 if kernelcout_map<=kernel_num weight_map(i*kernel_r+1+i:(i+1)*kernel_r+i,j*kernel_c+1+j:(j+1)*kernel_c+j)=weight(:,:,:,kernelcout_map); kernelcout_map=kernelcout_map+1; end end end figure hAxe=axes('Parent',gcf,... % 设置新的axe, 将'parent' 属性设置为当前窗口gcf 'Units','pixels',... %设置单位为pixels 'Position',[500 0 605 705]); % 指定axe的位置 left和bottom设定了axe的左下角坐标,width和height设定了窗口的宽度和高度axes(hAxe);imshow(uint8(weight_map)) str1=strcat('weight num:',num2str(kernelcout_map-1)); title(str1) end
运行 visualizing.m
结果如图:
感觉看不出什么规律来,是否因为mnist图像太小? 而像训练imagenet时模型输入是 256*256,因此训练得到的卷积核看起来有一些规律(类似边缘)。
PS: 这里用的是将 权值(w -min(w) / max(w) ) *255
这个原理没搞明白,如果有清楚的同学告诉我吧,THX~
0 0
- 【caffe-windows】 caffe-master 之 卷积核可视化(利用matlab)
- windows caffe matlab 可视化
- 【caffe-windows】 caffe-master 之 matlab接口配置
- 深度学习Caffe实战笔记(17)MATLAB实现卷积层卷积核权重的可视化
- 【caffe-windows】 caffe-master 之Matlab中model的分类应用
- Windows玩转Caffe(四): 配置Matlab接口之可视化初探
- 深度学习Caffe实战笔记(10)Windows Caffe使用MATLAB接口提取和可视化特征
- caffe图像可视化(二)——反卷积可视化
- 【caffe-windows】 caffe-master 之 cifar10 超详细
- 【caffe-windows】 caffe-master 之 mnist 超详细
- 【caffe-windows】 caffe-master 之 classfication_demo.m 超详细分析
- caffe matlab接口特征可视化
- 深度学习caffe实战笔记(13)利用MATLAB可视化mnist数据集
- 【caffe-Windows】微软官方caffe之 matlab接口配置
- 【caffe-Windows】微软官方caffe之 matlab接口配置
- 【caffe-Windows】微软官方caffe之 matlab接口配置
- 【caffe-Windows】微软官方caffe之 matlab接口cpu配置
- 【caffe-Windows】win caffe之 matlab接口配置
- zoj1141
- oracle导入日期提示ora-01843
- log4net使用详解
- Spring MVC 知识汇总
- 设置WebView接受所有网站的证书加载https
- 【caffe-windows】 caffe-master 之 卷积核可视化(利用matlab)
- 跨域资源共享 CORS 详解
- 洛谷 P1101 单词方阵
- 1011
- uva 512
- JSON for js
- AppBarLayout、CollapsingToolbarLayout以及Toolbar
- 金立手机权限开启方法3
- Android 仿今日头条的视频播放控件(几行代码快速实现)