bvlc_reference_caffenet网络权值可视化
一、网络结构
models/bvlc_reference_caffenet/deploy.prototxt

二、显示conv1的网络权值
clear;
clc;
close all;
addpath('matlab')
caffe.set_mode_cpu();
caffe.version()
net = caffe.Net('models/bvlc_reference_caffenet/deploy.prototxt',...
'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel', 'test');
net.layer_names
net.blob_names
conv1_layer = net.layer_vec();
blob1 = conv1_layer.params();%权重,params()为偏置
w = blob1.get_data();
size(w)%
W = zeros(*, *);%96张小图片,每张小图片11**,输出的卷积个数为96
for u = :
for v = :
W(*(u-) + (:), *(v-) + (:)) = w(:, :, u, v)';%矩阵块拷贝
end
end W = W - min(min(W));
W = W/(max(max(W)))*;%归一化到[,]
W = uint8(W);
W = [W, zeros(size(W, ), *)];%扩展矩阵,大小为(11x3,4x11)
WW = cat(, W(:, :), W(:, :), W(:, :));%将二维矩阵按通道拆分为3个二维矩阵
W = zeros(*, *, );%用于显示的彩色图片,初始化为黑色
for u = :
for v = :
W((u-)* + (:), (v-)* + (:), :) = WW(:, (u-)** + (v-)* + (:), :);%将11行每11列的数据块复制到W,复制3个通道
end
end
W = uint8(W);
figure; imshow(W);
输出:
ans =
1.0.
ans =
× cell 数组
'data'
'conv1'
'relu1'
'pool1'
'norm1'
'conv2'
'relu2'
'pool2'
'norm2'
'conv3'
'relu3'
'conv4'
'relu4'
'conv5'
'relu5'
'pool5'
'fc6'
'relu6'
'drop6'
'fc7'
'relu7'
'drop7'
'fc8'
'prob'
ans =
× cell 数组
'data'
'conv1'
'pool1'
'norm1'
'conv2'
'pool2'
'norm2'
'conv3'
'conv4'
'conv5'
'pool5'
'fc6'
'fc7'
'fc8'
'prob'
ans =

三、其他卷积层网络权值可视化
1、visualize_weights.m
function[] = visualize_weights(w,s)
h = max(size(w, ), size(w, )); %Kernel size
g = h + s; %Grid size, larger than Kernel size for better visual effects. %Normalization for gray scale
w = w - min(min(min(min(w))));
w = w/max(max(max(max(w))))*;
w = uint8(w); W = zeros(g*size(w, ), g*size(w, ));%用于保存权值的数据,通道数*g 行, 卷积核数*g 列
for u = :size(w, )
for v = :size(w, )
W(g*(u-) + (:h), g*(v-) + (:h)) = w(:, :, u, v)';
end
end
W = uint8(W);
figure; imshow(W);
2、caffenet_weights_vis.m
clear;
clc;
close all;
addpath('matlab')
caffe.set_mode_cpu();
sprintf(['Caffe Version = ', caffe.version(), '\n']);
net = caffe.Net('models/bvlc_reference_caffenet/deploy.prototxt',...
'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel', 'test'); sprintf('Load net done. Net layers: ');
net.layer_names sprintf('Net blobs: ');
net.blob_names %Conv1 Weight Visualization
conv1_layer = net.layer_vec();
blob1 = conv1_layer.params();
w = blob1.get_data();
sprintf('Conv1 Weight shape:');
size(w)
visualize_weights(w, ); %Conv2 Weight Visualization
conv2_layer = net.layer_vec();
blob2 = conv2_layer.params();
w2 = blob2.get_data();
sprintf('Conv2 Weight shape:');
size(w2)
visualize_weights(w2, ); %Conv3 Weight Visualization
conv3_layer = net.layer_vec();
blob3 = conv3_layer.params();
w3 = blob3.get_data();
sprintf('Conv3 Weight shape:');
size(w3)
visualize_weights(w3, ); %Conv4 Weight Visualization
conv4_layer = net.layer_vec();
blob4 = conv4_layer.params();
w4 = blob4.get_data();
sprintf('Conv4 Weight shape:');
size(w4)
visualize_weights(w4, ); %Conv5 Weight Visualization
conv5_layer = net.layer_vec();
blob5 = conv5_layer.params();
w5 = blob5.get_data();
sprintf('Conv5 Weight shape:');
size(w5)
visualize_weights(w5, );
3、输出
ans =
× cell 数组
'data'
'conv1'
'relu1'
'pool1'
'norm1'
'conv2'
'relu2'
'pool2'
'norm2'
'conv3'
'relu3'
'conv4'
'relu4'
'conv5'
'relu5'
'pool5'
'fc6'
'relu6'
'drop6'
'fc7'
'relu7'
'drop7'
'fc8'
'prob'
ans =
× cell 数组
'data'
'conv1'
'pool1'
'norm1'
'conv2'
'pool2'
'norm2'
'conv3'
'conv4'
'conv5'
'pool5'
'fc6'
'fc7'
'fc8'
'prob'
ans =
ans =
ans =
警告: 图像太大,无法在屏幕上显示;将以 % 显示
> In images.internal.initSize (line )
In imshow (line )
In visualize_weights (line )
In caffenet_weights_vis (line )
ans =
ans =
>>
end
bvlc_reference_caffenet网络权值可视化的更多相关文章
- mnist全连接层网络权值可视化
一.数据准备 网络结构:lenet_lr.prototxt 训练好的模型:lenet_lr_iter_10000.caffemodel 下载地址:链接:https://pan.baidu.com/s/ ...
- weight decay (权值衰减)
http://blog.sina.com.cn/s/blog_890c6aa30100z7su.html 在机器学习或者模式识别中,会出现overfitting,而当网络逐渐overfitting时网 ...
- 2019年CCPC网络赛 HDU 6703 array【权值线段树】
题目大意:给出一个n个元素的数组A,A中所有元素都是不重复的[1,n].有两种操作:1.将pos位置的元素+1e72.查询不属于[1,r]中的最小的>=k的值.强制在线. 题解因为数组中的值唯一 ...
- caffe中权值初始化方法
首先说明:在caffe/include/caffe中的 filer.hpp文件中有它的源文件,如果想看,可以看看哦,反正我是不想看,代码细节吧,现在不想知道太多,有个宏观的idea就可以啦,如果想看代 ...
- SPOJ 839 OPTM - Optimal Marks (最小割)(权值扩大,灵活应用除和取模)
http://www.spoj.com/problems/OPTM/ 题意: 给出一张图,点有点权,边有边权 定义一条边的权值为其连接两点的异或和 定义一张图的权值为所有边的权值之和 已知部分点的点权 ...
- 神经网络权值初始化方法-Xavier
https://blog.csdn.net/u011534057/article/details/51673458 https://blog.csdn.net/qq_34784753/article/ ...
- weight decay(权值衰减)、momentum(冲量)和normalization
一.weight decay(权值衰减)的使用既不是为了提高你所说的收敛精确度也不是为了提高收敛速度,其最终目的是防止过拟合.在损失函数中,weight decay是放在正则项(regularizat ...
- CNN中的局部连接(Sparse Connectivity)和权值共享
局部连接与权值共享 下图是一个很经典的图示,左边是全连接,右边是局部连接. 对于一个1000 × 1000的输入图像而言,如果下一个隐藏层的神经元数目为10^6个,采用全连接则有1000 × 1000 ...
- 权值初始化 - Xavier和MSRA方法
设计好神经网络结构以及loss function 后,训练神经网络的步骤如下: 初始化权值参数 选择一个合适的梯度下降算法(例如:Adam,RMSprop等) 重复下面的迭代过程: 输入的正向传播 计 ...
随机推荐
- 【异常】idea执行Main方法出现 Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
一.异常复现步骤 1)首先得是一个Spring MVC项目 注:Spring Boot项目有内置的web 容器,不会出现该问题 2)main方法存在于使用HttpServletRequest类的类中 ...
- 【分布式搜索引擎】Elasticsearch分布式架构原理
一.相关概念介绍 1)集群(cluster) 一个集群(cluster)由一个或多个节点组成. 这些节点具有相同的cluster.name,它们协同工作,分享数据和负载.当加入新的节点或者删除一个节点 ...
- BFS 路径记录
有一迷宫 N*M,要求输出可通行的最短路径. 可以先倒着 BFS 一遍迷宫,这样 dis[] 数组储存的就是各点到迷宫终点的最短距离. 然后再从起点开始 BFS 一遍 dis[] ,只要满足 dis[ ...
- CRM INBOX 结果增强功能
前段时间接到的需求:INBOX(ICCMP_INBOX)查询结果,多选后弹出选择用户的框,选择用户,带入到单据的PARTNER FUNC的工程师中,并修改单据状态. 其实标准的INBOX的Compon ...
- wrk 使用记录及踩过的坑
wrk是什么?https://github.com/wg/wrk wrk 是一个非常小巧高效的开源性能测试工具,支持lua脚本来创建复杂的测试场景.wrk 的一个很好的特性就是能用很少的线程压出很大的 ...
- 【IDE】我的花里胡哨VS
我的 VS2017 效果图,花里胡哨但十分养眼,利于C/C++ Coding~ 一.主题设置 工具 → 扩展和更新 下载插件 Color Theme Editor for Visual Studio ...
- 【ANT】输入中文格式为乱码
使用ant编译,打出的日志的格式为乱码,加上下面的指定编码后,输出为中文了. 为方便拷贝,将其贴出来 <jvmarg value="-Dfile.encoding=UTF-8" ...
- react+classnames
之前做项目的时候一直不知道有不知道有classnames这个东西,一直用的都是字符串拼接,感觉用的很别扭. classnames用法和angular1.x及vue差不多,所以用起来会比较顺手 1)安装 ...
- python变量传递
python变量传递 数值 代码 num_1 = 123 num_2 = num_1 # 改变num_2值前 print 'num_1 = {0}, num_2 = {1}'.format(num_1 ...
- centos7源码安装Python3的前提条件
centos7源码安装Python3的前提条件: # yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline- ...