一、数据准备

网络结构:lenet_lr.prototxt

训练好的模型:lenet_lr_iter_10000.caffemodel

下载地址:链接:https://pan.baidu.com/s/1uBDTKapT1yFHX4TEMaxQvQ 密码:2mla

二、利用pycaffe可视化,只需根据prototxt文件即可得到

~/caffe/caffe/examples/mnist$ python /home/tingpan/caffe/caffe/python/draw_net.py lenet_lr.prototxt lenet_lr.png

三、matlab权值可视化

1、切换至caffe目录下,在matlab目录中新建mnist_lr_weights_vis.m

clear;
clc;
close all;
addpath('matlab')
caffe.set_mode_cpu();
caffe.version()
net = caffe.Net('examples/mnist/lenet_lr.prototxt' , ...
'examples/mnist/lenet_lr_iter_10000.caffemodel', 'test');
net.layer_names
net.blob_names
ip_layer = net.layer_vec();
weight_blob = ip_layer.params();
w = weight_blob.get_data();
size(w) %784x10
bias_blob = ip_layer.params();
b = bias_blob.get_data();
size(b) %10x1 w = w - min(min(w));
w = w/(max(max(w)))*;
w = uint8(w);
figure; imshow(w);
imwrite(w, './matlab/ip_weight.bmp');
sprintf('finish')

2、点击运行

点击添加到路径。

3、输出:

ans =

1.0.

ans =

  × cell 数组

    'mnist'
'label_mnist_1_split'
'ip'
'ip_ip_0_split'
'accuracy'
'loss' ans = × cell 数组 'data'
'label'
'label_mnist_1_split_0'
'label_mnist_1_split_1'
'ip'
'ip_ip_0_split_0'
'ip_ip_0_split_1'
'accuracy'
'loss' ans = ans = ans = finish

4、分析

net内容为

可得matlab可视化得到的网络模型是

从图中可输出layer有6层(6个矩形),blob有9个(9个椭圆形或多边形);

其中,InnerProduct(内积层,也即全连接层),存有权重信息。该权重尺寸为784x10,可推出blob的data的size为100x784,blob中的ip的size为100x10;

net.layer_vec中只有ip层的params不为空

其中第一个blob的size为748x10,为权重;第二个blob的size为10x1,为偏置参数。

得到的权值图片为:caffe/matlab/ip_weight.bmp

end

mnist全连接层网络权值可视化的更多相关文章

  1. bvlc_reference_caffenet网络权值可视化

    一.网络结构 models/bvlc_reference_caffenet/deploy.prototxt 二.显示conv1的网络权值 clear; clc; close all; addpath( ...

  2. 深度学习原理与框架-卷积网络细节-图像分类与图像位置回归任务 1.模型加载 2.串接新的全连接层 3.使用SGD梯度对参数更新 4.模型结果测试 5.各个模型效果对比

    对于图像的目标检测任务:通常分为目标的类别检测和目标的位置检测 目标的类别检测使用的指标:准确率, 预测的结果是类别值,即cat 目标的位置检测使用的指标:欧式距离,预测的结果是(x, y, w, h ...

  3. caffe之(四)全连接层

    在caffe中,网络的结构由prototxt文件中给出,由一些列的Layer(层)组成,常用的层如:数据加载层.卷积操作层.pooling层.非线性变换层.内积运算层.归一化层.损失计算层等:本篇主要 ...

  4. 全连接层(FC)与全局平均池化层(GAP)

    在卷积神经网络的最后,往往会出现一两层全连接层,全连接一般会把卷积输出的二维特征图转化成一维的一个向量,全连接层的每一个节点都与上一层每个节点连接,是把前一层的输出特征都综合起来,所以该层的权值参数是 ...

  5. fc全连接层的作用、卷积层的作用、pooling层、激活函数的作用

    fc:1.起到分类器的作用.对前层的特征进行一个加权和,(卷积层是将数据输入映射到隐层特征空间)将特征空间通过线性变换映射到样本标记空间(也就是label) 2.1*1卷积等价于fc:跟原featur ...

  6. CNN学习笔记:全连接层

    CNN学习笔记:全连接层 全连接层 全连接层在整个网络卷积神经网络中起到“分类器”的作用.如果说卷积层.池化层和激活函数等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的特征表示映射到样 ...

  7. 深度学习Keras框架笔记之Dense类(标准的一维全连接层)

    深度学习Keras框架笔记之Dense类(标准的一维全连接层) 例: keras.layers.core.Dense(output_dim,init='glorot_uniform', activat ...

  8. PyTorch全连接ReLU网络

    PyTorch全连接ReLU网络 1.PyTorch的核心是两个主要特征: 一个n维张量,类似于numpy,但可以在GPU上运行 搭建和训练神经网络时的自动微分/求导机制 本文将使用全连接的ReLU网 ...

  9. resnet18全连接层改成卷积层

    想要尝试一下将resnet18最后一层的全连接层改成卷积层看会不会对网络效果和网络大小有什么影响 1.首先先对train.py中的更改是: train.py代码可见:pytorch实现性别检测 # m ...

随机推荐

  1. js的缓存

    无网络的情况下,使用静态资源呈现页面的方法,只有h5的manifest 有网的情况下(可以连接到服务器的情况下),有3种判断缓存的方式. ------------------------------- ...

  2. LeetCode--021--合并两个有序链表(java)

    将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...

  3. Rails-Treasure chest2 嵌套表单;

    嵌套表单1-1 嵌套表单1-多 选日期时间的UI (一个jquery Plugin) 拆除前后台css和js Rich Editor, 显示输入的HTML tag 批次编辑/删除 嵌套表单1-1 核心 ...

  4. 转载:VC++6.0注释快捷键设置,略有修改

    在Qt Creator,eclipse等编辑器中,都默认有注释代码的快捷键:Ctrl + /. 注释快捷键在程序编程当中的作用相当明显,提高了编程效率.我在网上找到了一个在VC++6.0工具中添加注释 ...

  5. python之路-----多线程与多进程

    一.进程和线程的概念 1.进程(最小的资源单位): 进程:就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成. 程序:我们编写的程序用来描述进程要完成哪些功能以 ...

  6. ssl证书安装到iis服务器

    1.先购买ssl证书, 2.对付会先发一份邮件到你的邮箱,进行验证 3.再查看邮箱,会发现有了对应的证书文件. 附件会有一个压缩包,里面包含4份证书文件, 还有一个通配符的字符串. 4.下载之后, 先 ...

  7. java readProperties

    @Deprecated public static Map<String, String> readProperties(String propertiesFile) { Properti ...

  8. linux安装mysql图文教程

    ---恢复内容开始--- 1.下载mysql [root@localhost ~]# yum install mysql mysql-server 输入y 输入y 输入y 下载完成 接下来我们要使用w ...

  9. mysql慢查询----pt-query-digest详解慢查询日志(linux系统)

    一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdu ...

  10. FCC JS基础算法题(11):Seek and Destroy (摧毁数组)

    题目描述: 实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值. 我们可以使用arguments来进行参数的遍历. function destroyer(arr) ...