caffe中训练出来的model怎么样提取出来在matlab中使用
1个回答
展开全部
只在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文件定义的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询