怎样在caffe的model中抽取数据娴dat文件中
1个回答
2015-12-31 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517203
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
只在Linux环境下用过Caffe,(官方似乎还没给出Windows版本,但有人给出了解决方案:niuzhiheng/caffe · GitHub)。
Caffe提供了MATLAB接口,可以直接读取caffemodel中的模型参数,之后想怎么存就是你自己的事啦。以CaffeNet为例:
% add path for caffe's matlab interface
addpath('~/Deep.Learning/caffe-master/matlab');
% define constant variables
kLayerIndConv = 1; % conv_1
kLayerIndFCnt = 16; % fc_6
kProtoFilePath = './deploy.prototxt';
kModelFilePath = './bvlc_alexnet.caffemodel';
% load caffe model
caffeNet = caffe.Net(kProtoFilePath, kModelFilePath, 'test');
% read parameters in the <conv_1> layer
convKnlLst = caffeNet.layer_vec(kLayerIndConv).params(1).get_data();
biasVecLst = caffeNet.layer_vec(kLayerIndConv).params(2).get_data();
% read parameters in the <fc_6> layer
fcntWeiMat = caffeNet.layer_vec(kLayerIndFCnt).params(1).get_data();
biasVecLst = caffeNet.layer_vec(kLayerIndFCnt).params(2).get_data();
% reset caffe model
caffe.reset_all();
具体的参数编号(params的输入参数),是在prototxt文件定义的。
Caffe提供了MATLAB接口,可以直接读取caffemodel中的模型参数,之后想怎么存就是你自己的事啦。以CaffeNet为例:
% add path for caffe's matlab interface
addpath('~/Deep.Learning/caffe-master/matlab');
% define constant variables
kLayerIndConv = 1; % conv_1
kLayerIndFCnt = 16; % fc_6
kProtoFilePath = './deploy.prototxt';
kModelFilePath = './bvlc_alexnet.caffemodel';
% load caffe model
caffeNet = caffe.Net(kProtoFilePath, kModelFilePath, 'test');
% read parameters in the <conv_1> layer
convKnlLst = caffeNet.layer_vec(kLayerIndConv).params(1).get_data();
biasVecLst = caffeNet.layer_vec(kLayerIndConv).params(2).get_data();
% read parameters in the <fc_6> layer
fcntWeiMat = caffeNet.layer_vec(kLayerIndFCnt).params(1).get_data();
biasVecLst = caffeNet.layer_vec(kLayerIndFCnt).params(2).get_data();
% reset caffe model
caffe.reset_all();
具体的参数编号(params的输入参数),是在prototxt文件定义的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询