MATLAB解析caffe训练日志并绘制曲线

公司机器上,使用python画图缺少一些库,但是又没有权限安装,所以考虑matlab。
使用MATLAB画解析caffe的训练日志,其实就是找规律,代码如下:

function loss_accuracy_visualization(logName)
fid = fopen(logName, 'r'); 
fid_accuracy = fopen('output_accuracy.txt', 'w'); 
fid_loss = fopen('output_loss.txt', 'w');
fid_lr=fopen('output_lr.txt','w');

iteration ={};
loss = {};
accuracy = {};
%path = './';
iter_current='';
while(~feof(fid))
    tline = fgetl(fid);
    %%
    if strfind(tline, 'sgd_solver.cpp:')
        iter_index = strfind(tline, 'Iteration ');
        rest = tline((iter_index+10):end);
        iter_current = strtok(rest, ',');                   % iteration number;
        iteration = [iteration  iter_current];        % count the iteration; 
        lr_index = strfind(tline, 'lr = ');
        lr_current = tline((lr_index+4):end);                  % learning rate;
        fprintf(fid_lr,'%s\t%s\n',iter_current,lr_current);
    end

    %%
    if strfind(tline, 'solver.cpp:218]')
        iter_index = strfind(tline, 'Iteration ');
        rest = tline((iter_index+10):end);
        iter_current = strtok(rest, '(');
        loss_index = strfind(tline, 'loss = ');
        loss_current = tline((loss_index+7):end);
        fprintf(fid_loss, '%s\t%s\n', iter_current,loss_current); 
  %      fprintf(fid_, '%s \n', loss_current );
        loss = [loss  loss_current] ;       % count the iteration; 

    end

    if strfind(tline, 'solver.cpp:237')
        accuracy_index = strfind(tline, 'accuracy = ');
        accuracy_current = tline((accuracy_index+11):end);
        fprintf(fid_accuracy, '%s\t%s\n', iter_current,accuracy_current);
        accuracy = [accuracy  accuracy_current];
    end
end


fclose(fid); 
fclose(fid_accuracy);
fclose(fid_loss);
fclose(fid_lr);

%plot
train_loss=importdata('output_loss.txt');
if(~isempty(train_loss))
    figure(1)
    plot(train_loss(:,1),train_loss(:,2));
    title('output_loss vs. Iterations')
end


test_loss=importdata('output_accuracy.txt');
if(~isempty(test_loss))
    figure(2)
    plot(test_loss(:,1),test_loss(:,2));
    title('output_accuracy vs. Iterations')
end


train_lr=importdata('output_lr.txt');
if(~isempty(train_lr))
    figure(3)
    plot(train_lr(:,1),train_lr(:,2));
    title('output_lr vs. Iterations')
end

代码调用:

logName = 'caffe.qihan.root.log.INFO.20171204-160826.27459';
loss_accuracy_visualization(logName);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值