caffe 查看caffemodel中的参数与数据

2023-11-10

在用caffe训练完一个模型之后,我们想更加直观的查看这个模型该怎么做呢?
caffe框架训练出来的caffemodel是一个类似于黑盒的东西,我们无法直接看到它的本质,需要借助caffe所定义的接口来协助我们。详细的文档在caffe官网上都有介绍:http://caffe.berkeleyvision.org/
如果我们用f=wx+b来表示运算的过程,
那w和b就是我们需要训练的参数,w称为权值,在cnn中也可以叫做卷积核(filter),b为偏置项。
数据训练完之后,保存在caffemodel里面的,实际上就是各层的w和b
此处附图一张,方便直观理解
这里写图片描述
一.查看caffemodel中的参数
请在spyder中运行以下代码

import sys
caffe_root = '.../'  #填写详细的caffe路径
sys.path.insert(0, caffe_root + 'python')
import caffe
deploy='.../deploy.prototxt' #deploy文件路径    
caffe_model='.../XXX.caffemodel'  #caffemodel的路径
net = caffe.Net(deploy,caffe_model,caffe.TEST) #加载network和model

通过以上的代码就可以将参数和数据加载到一个net变量中了,但是这个变量非常复杂,无法直接显示出来,需要借助各种命令来查看。
net.blobs:保存各层的数据值
net.params:保存各层的参数(w和b)

[(k,v[0].data) for k,v in net.params.items()]

其中k表示层的名称,我们可以在网络的定义中查看各层的名称,
v[0].data是各层中w的值,
v[1].data是各层中b的值。
注意:并不是所有的层都有参数,只有卷积层和全连接层才有

如果想查看某一层的参数,可使用以下命令

w1=net.params['xxx'][0].data   
b1=net.params['xxx'][1].data   

xxx表示为想要查看的层的名称

二.查看caffemodel中的数据
net中刚开始是没有数据的,需要运行以下命令才会有数据

net.forward()

然后使用代码查看各层的数据

[(k,v.data) for k,v in net.blobs.items()]

卷积过后的图片数据为特征,可以用以下命令提取特征

fea=net.blobs['xxx'].data

其中xxx为层的名称

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

caffe 查看caffemodel中的参数与数据 的相关文章

随机推荐

  • html中使用js实现福彩双色球随机选号

    福彩双色球随机选号 页面预览 代码实现
  • Neo4j Desktop 图数据库的导出方式

    先打开Neo4j Desktop 不要Start数据库 不然无法导出 选着想导出的数据库 1 点击Terminal之后 进入终端 本机的图数据目录如下 2 为了能够执行neo4j admin命令 需要进入bin目录 cd bin 3 数据库
  • g++ 编译pybind

    简单的 g O3 march native Wall shared std c 11 fPIC undefined python3 m pybind11 includes example cpp o example python3 conf
  • Docker如何安装RabbitMQ

    安装RabbitMQ有两以下两种常用方式 使用RabbitMQ安装包 使用Docker容器安装 推荐 由于Docker容器并不会影响我们之前安装在Linux系统上的其他服务 所以可以放心的使用Docker进行RabbitMQ的安装 并且采用
  • Java字节流与字符流的区别

    字节流与和字符流的使用非常相似 两者除了操作代码上的不同之外 是否还有其他的不同呢 实际上字节流在操作时本身不会用到缓冲区 内存 是文件本身直接操作的 而字符流在操作时使用了缓冲区 通过缓冲区再操作文件 如图12 6所示 下面以两个写文件的
  • 【算法题】运矿石(未完待续)

    题目 小v最近在玩一款挖矿的游戏 该游戏介绍如下 1 每次可以挖到多个矿石 每个矿石的重量都不一样 挖矿结束后需要通过一款平衡矿车运送下山 2 平衡矿车有左右2个车厢 中间只有1个车轮沿着导轨滑到山下 且矿车只有在2个车厢重量完全相等且矿石
  • cass等距离等分线段的命令键_cad直线均分的命令(CAD等分线段快捷键?)

    CAD等分线段快捷键 CAD中等分线段分为两种 定数等分和定距等分 1 定数等分 命令是DIVIDE 快捷键是DIV 2 定距等分 命令是MEASURE 快捷键是ME 以线段定数等分为例 1 键盘输入快捷键 DIV 如图 2 按回车键或者空
  • 常用的免费Api接口网址

    收录一下常用的免费Api接口 记录参考 具体使用请自行前往查看 和风天气 https dev qweather com docs api 天气预报 https www juhe cn docs api id 73 手机号码归属地 https
  • Android Studio代码提示自动补全设置

    最近学习Android开发课程 用的是Android studio开发工具 刚开始用发现竟然没有代码提示补全功能 我自己去看了一下设置 又设置了匹配补全提示 code起来还是不行 后来上网搜索 都是一些关于如何设置个性化自动补全提示的内容
  • BC1.2快充协议介绍

    BC1 2定义 BC1 2 Battery Charging v1 2 是USB IF下属的BC Battery Charging 小组制定的协议 主要用于规范电池充电的需求 该协议最早基于USB2 0协议来实现 BC1 2充电端口 USB
  • 有无监督,上下游任务,高斯分布,BN总结

    1 无监督和有监督的区别 有无标号 label与预测结果做损失loss transformer有监督的 BERT 在预训练中在没有标号的数据集上训练 在微调的时候同样是用一个BERT模型 但是它的权重被初始化成在预训练中得到的权重 有标号的
  • 华为OD机试 - 字符串加密(Java)

    题目描述 给你一串未加密的字符串str 通过对字符串的每一个字母进行改变来实现加密 加密方式是在每一个字母str i 偏移特定数组元素a i 的量 数组a前三位已经赋值 a 0 1 a 1 2 a 2 4 当i gt 3时 数组元素a i
  • 软件工程学习过程中工具、资料汇总与心得

    因为在上了半年课以后 发现学的课程太杂 要的工具太多 回顾当初找工具找到病毒工具的苦不堪言的黑历史 在此整理学习用到的所有工具 保持更新 因为文件已经被别人上传了 还要积分什么鬼的 信息化时代共享不好嘛 因此将文件均上传至百度网盘 下载缓慢
  • vue+nodejs 搭建网站全过程

    Vue js Node js MongoDB 的网站搭建示例 安装和初始化项目 使用 Vue Cli 初始化前端项目 vue create my site 使用 Express 初始化后端项目 npx express generator m
  • 如何解决局域网广播风暴

    晚唐诗人许浑曾写过一首诗 咸阳城东楼 其中有一句名句 被传诵千古 山雨欲来风满楼 山雨欲来风满楼 是全诗的警句 周围的群山 雨意越来越浓 大雨即将到来 城楼上 已是满楼的狂风 全句只有寥寥七个字 却十分形象地写出了山城暴雨即将来临时的情景
  • 华为OD机试 - 阿里巴巴找黄金宝箱(I)(Python)

    题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上 无意中发现了强盗集团的藏宝地 藏宝地有编号从0 N的箱子 每个箱子上面贴有一个数字 箱子中可能有一个黄金宝箱 黄金宝箱满足排在它之前的所有箱子数字和等于排在它之后的所有箱子数字之和 第一个箱子
  • SQL SERVER行列不同分类的展示---PIVOT

    行列不同分类的SQL SERVER展示 由于工作的需求 需要对行不同分类 列也不同分类 可以将行分类之后对列进行每列CASE WHEN 进行展示 但是这种方法太蠢了 而且代码不够简洁 因此网上寻找了行转列函数 上最基础的做法 select
  • 关于javascript中number类型与string类型的比较

    javascript中number类型与string类型的比较 应该是根据number类型的数值情况 将string转换为与number数值相对应的值再比较 var numVal 10 00 if numVal 10 0000 consol
  • 搭建QNX开发环境-qnx系统环境开发

    锋影 e mail 174176320 qq com QNX是可以提供试用30天 目前发布最新的是qnx7 0版本 申请也是只能7 0 做好白老鼠的准备 老版本不再申请试用 其实多数时候 老版本的650 650sp1 和较新稳定的660版本
  • caffe 查看caffemodel中的参数与数据

    在用caffe训练完一个模型之后 我们想更加直观的查看这个模型该怎么做呢 caffe框架训练出来的caffemodel是一个类似于黑盒的东西 我们无法直接看到它的本质 需要借助caffe所定义的接口来协助我们 详细的文档在caffe官网上都