如何导出caffemodel参数
来源:互联网 发布:em算法硬币 编辑:程序博客网 时间:2024/05/16 17:04
最近在github上看到一个导出mnist的model参数的Matlab和python的脚本,比较简单,以后可能用得到,记录一下。
load_caffemodel.py: 使用python脚本加载lenet的参数。
conv*.mat: 在blob数据中相同结构定义的层的参数。
parse_param.m: Matlab脚本,将加载到的每层参数保存出来的mat文件整合成一个parsed_param.mat文件。
parsed_param.mat: Matlab保存生成的mat文件。
如果github打不开的话,我这里把这几个脚本的代码贴出来。
================================================================================
load_caffemodel.py
import numpy as npimport scipy.io as sioimport 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 = '/caffe/examples/mnist/'load()print 'Caffemodel loaded and written to .mat files successfully!'
parse_param.m
clear;close all;clc%% Parse the ConvNet parameters loaded from caffe into better fit version% Author: Yuliang Zou% Date: 06/14/2016%% Load parametersload('conv1_w.mat');load('conv1_b.mat');load('conv2_w.mat');load('conv2_b.mat');load('ip1_w.mat');load('ip1_b.mat');load('ip2_w.mat');load('ip2_b.mat');%% Parse parameters into better fit version% conv1 has 20 filters with 5 * 5 size W1 = zeros(5,5,20);for i = 1:20 W1(:,:,i) = conv1_w(i,1,:,:);endb1 = double(conv1_b');% conv2 has 50 filters with 5 * 5 size W2 = zeros(5,5,20,50);for k = 1:20 for i = 1:50 W2(:,:,k,i) = conv2_w(i,k,:,:); endendb2 = double(conv2_b');% fc layersip1W = double(ip1_w);ip1b = double(ip1_b');ip2W = double(ip2_w);ip2b = double(ip2_b');save('parsed_param.mat','W1','W2','b1','b2','ip1W','ip1b','ip2W','ip2b');
0 0
- 如何导出caffemodel参数
- caffe上手:如何导出caffemodel参数
- caffe上手:如何导出caffemodel参数
- 从caffemodel中导出参数
- 从caffemodel中导出参数
- Caffe小玩意(2)-从caffemodel中导出参数
- pycaffe读取caffemodel参数
- 查看caffemodel的参数值
- 使用pycaffe读取caffemodel参数
- Caffemodel之C++修改参数
- Caffe学习:使用pycaffe读取caffemodel参数
- 使用pycaffe 对caffemodel 参数进行读取
- Caffe学习:使用pycaffe读取caffemodel参数
- caffemodel中的参数及特征的抽取
- Caffe学习:使用pycaffe读取caffemodel参数
- caffemodel中的参数及特征的抽取
- Caffe学习:使用pycaffe读取caffemodel参数
- 读取修改caffemodel文件里的网络模型参数
- Google 发布 Android 性能优化典范
- redis 键(key)
- 网易视频云受邀参加中国视频云峰会,有哪些看点?
- linux环境变量不能生效问题
- 亿级Web系统搭建——单机到分布式集群
- 如何导出caffemodel参数
- JavaScript实现Ajax请求简单示例
- CodeForces733D Kostya the Sculptor 贪心+二分
- HihoCode 1284 : 机会渺茫【约数个数】
- void (*signal(int sig, void (*func) (int))) (int)理解
- [bzoj 1009] [HNOI2008]GT考试:DP,单串AC自动机,矩阵快速幂
- java的反射机制
- python Json
- 身份证号码验证