Caffe的matlab接口的基本操作

来源:互联网 发布:xampp安装教程 linux 编辑:程序博客网 时间:2024/05/17 22:00

如果已经编译了Caffe的matlab版本matcaffe,并将对应路径添加到matlab的路径中,就可以进行下面的额学习了:

%CPU模式caffe.set_mode_cpu();%GPU模式gpu_id=0;caffe.set_mode_gpu();caffe.set_device(gpu_id);
%网络初始化net_model=['path/to/deploy.prototxt'];net=caffe.Net(net_model,'train')%利用训练好的模型初始化网络net_weights=[path/to/model.caffemodel’];net=caffe.Net(net_model,net_weights,'test');
function crop_data=prepare_image(im)    %%%%加载均值文件:w*h*c    f=load('path/to/mean.mat');    mean_data=f.mean_data;    %%%%%图片预处理    %RGB转换乘BGRW*H*C    im_data=im(:,:,[3,2,1]);    %将WH互换,H*W*C->W*H*C    im_data=permute(img_data,[2,1,3]);    %将uint8转换成single浮点数    im_data=single(im_data);    im_data=im_data-mean_data;    %已知网络输入为227*227大小,输入图片为256*256大小,因此需要在原图上进行crop抽样。    %十张227*227的三通道单精度图片    crop_im=zeros(227,227,3,10,'single');    indices=[0,256-227]+1;    n=1;    for i=indices        for j=indices        crop_im(:,:,:,n)=im_data(i:i+227-1,j:j+227-1,:);        %镜像        crop_im(:,:,:,n+5)=crop_im(end:-1:1,:,:,n);        n=n+1;        end    endcenter=floor(indices(*\2)/2)+1;crop_im(:,:,:,5)=im_data(center:center+227-1,center:center+227-1,:);crop_im(:,:,:,10)=crop_im(end:-1:1,:,:,5);
input_data={prepare_image(im)};scores=net.forwar(input_data);scores=scores{1};scores=mean(scores,2);
%获取某个层的参数或者输出weights_layername=net.params('layername',1).get_data();output_layername=net.blob('layername').get_data();
0 0