Caffeのmatlabインタフェースの基本操作

5417 ワード

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]);
    % W HH*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*227256*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();