Caffe的matlab接口的基本操作

    xiaoxiao2021-04-17  29

    如果已经编译了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 end center=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();
    转载请注明原文地址: https://ju.6miu.com/read-673259.html

    最新回复(0)