从caffemodel中导出参数
原文地址:http://blog.csdn.NET/u014510375/article/details/51704447
最近读到一篇paper非常有意思,他们把caffe里训练好的模型的参数导出来了,然后…弄到了torch里。所以,今天就来看看怎么导出参数吧。
为了简单,这次我选的是LeNet
import numpy as np
import scipy.io as sio
import caffedef load():# Load the netcaffe.set_mode_cpu()# You may need to train this caffemodel first# There should be script to help you do the trainingnet = caffe.Net(root + 'lenet.prototxt', root + 'lenet_iter_10000.caffemodel',\caffe.TEST)conv1_w = net.params['conv1'][0].dataconv1_b = net.params['conv1'][1].dataconv2_w = net.params['conv2'][0].dataconv2_b = net.params['conv2'][1].dataip1_w = net.params['ip1'][0].dataip1_b = net.params['ip1'][1].dataip2_w = net.params['ip2'][0].dataip2_b = net.params['ip2'][1].datasio.savemat('conv1_w', {'conv1_w':conv1_w})sio.savemat('conv1_b', {'conv1_b':conv1_b})sio.savemat('conv2_w', {'conv2_w':conv2_w})sio.savemat('conv2_b', {'conv2_b':conv2_b})sio.savemat('ip1_w', {'ip1_w':ip1_w})sio.savemat('ip1_b', {'ip1_b':ip1_b})sio.savemat('ip2_w', {'ip2_w':ip2_w})sio.savemat('ip2_b', {'ip2_b':ip2_b})if __name__ == "__main__":# You will need to change this pathroot = '/Users/yuliangzou/caffe-rc3/examples/mnist/'load()print 'Caffemodel loaded and written to .mat files successfully!'
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
从代码里可以看得很清楚啦,首先导入模型,然后利用net.params就可以获取参数了,另外你也可以利用net.data导出数据进行可视化。当然,在导出参数之前…你必须要跑过一遍,不然你没有这个caffemodel…
最后…要说一下我最近无聊的时候在github上开了个Naive-CNN的项目,就是….把Caffe里的模型参数导出来,用Matlab或者Python写一遍。目前只做了LeNet。欢迎大家也来玩:
https://github.com/Yuliang-Zou/Naive-CNN
从caffemodel中导出参数相关推荐
- caffe的python接口学习(8):caffemodel中的参数及特征的抽取
如果用公式 y=f(wx+b) 来表示整个运算过程的话,那么w和b就是我们需要训练的东西,w称为权值,在cnn中也可以叫做卷积核(filter),b是偏置项.f是激活函数,有sigmoid.relu ...
- MindSpore:【AIR模型导出】导出时提示源码中select_op参数类型转换失败
问题描述: [功能模块] MindSpore - 模型导出 - AIR模型导出 [操作步骤&问题现象] 1.脚本在GPU和Ascend环境下正常运行,可以正常运行,结果也正常 2.Ascend ...
- linux 下orapwd 未找到命令,orapwd命令中entries参数的作用
orapwd命令中entries参数的作用 作者 blue_stone E-mail: blue_stone@xinhuanet.com Blog: http://bluestone.cublog.c ...
- DLL中导出函数的声明有两种方式
本文引用自:VC编程时DLL中导出函数的声明有两种方式 一种方式是:在函数声明中加上__declspec(dllexport): 另外一种方式是:采用模块定义(.def)文件声明,(.def)文件为链 ...
- DLL入门浅析(4)——从DLL中导出类
前面介绍了怎么从DLL中导出函数和变量,实际上导出类的方法也是大同小异,废话就不多说了,下面给个简单例子示范一下,也就不多做解释了. DLL头文件: #ifndef _DLL_SAMPLE_H #de ...
- WinForm中导出Excel
通过传入不同的数据集来控制Excel中sheet的数目,此例依照两个为例,仅供大家参考: #region 導出Excel private void outPutExcel(System ...
- 【Datapump】expdp和impdp中parallel参数解释
在 expdp 和 impdp 中,可以通过并行( parallel 参数)来提高导出导入速率.这个参数会受到 cpu 和 I/O 影响.所以在使用 parallel 参数时,需要在资源消耗和运行时间 ...
- 手把手教你如何用Python从PDF文件中导出数据(附链接)
作者:Mike Driscoll :翻译:季洋:校对:丁楠雅 本文约4000字,建议阅读10分钟. 本文介绍了在提取出想要的数据之后,如何将数据导出成其他格式的方法. 有很多时候你会想用Python从 ...
- libvlc_media_add_option 函数中的参数设置
libvlc_media_add_option 函数中的参数设置 Usage: vlc [options] [stream] ... You can specify multiple stream ...
- 不同坐标系BIM模型导出参数配置
一.大数坐标系(以Civil3d模型为例) 写在前面: Civid3d软件与CAD软件类似,如果是以大数坐标系建模,原点则为(0,0),模型上取一点坐标基本为(8位X,7位Y).可用id命令在civi ...
最新文章
- 阿里达摩院《机器学习算法学习指南》火了,限时开放下载!
- 虚拟机Oracle VM VirtualBox linux系统如何访问windows共享文件夹
- lunbuntu install maven
- JS设计模式三:策略模式
- 数据预处理--样本选择、交叉验证
- 八位技术专家分享他们最喜欢的物联网技术
- Redis简介及安装
- java 前后的区别_java中前后++的区别
- 计算机网络误区——源目IP和源目MAC变化问题
- 计算机网络教程 azw3,Windows 10从入门到精通(pdf+epub+mobi+txt+azw3)
- 计算机串口程序配置,串口设置软件 串口调试工具如何使用
- 理正深基坑6.0软件备忘录_梳理使用方法01
- 使用Scrapy模拟登陆人人网
- 欢乐喜剧人宋晓峰吟诗大全
- 数独解法/n皇后的回溯算法
- 免费分享《精通C#游戏编程》
- Windows命令窗口输入命令报错不是内部或外部命令,也不是可运行的程序 或批处理文件
- 删除主键索引 oracle,删除主键无法删除对应索引问题 drop constraint
- 王桂林 C++基础与提高 练习题——格式时钟输出(实时的,精确到秒)
- 我国村庄规划发展历程