将caffe训练时loss的变化曲线用matlab绘制出来

1. 首先是提取 训练日志文件;

 

2. 然后是matlab代码:

clear all; close all; clc;
log_file = '/home/wangxiao/Downloads/43_attribute_baseline.log';
fid = fopen(log_file, 'r');
fid_accuracy = fopen('/home/wangxiao/Downloads/output_accuracy.txt', 'w'); 
fid_loss = fopen('/home/wangxiao/Downloads/output_loss.txt', 'w');

iteration ={};
loss = {};
accuracy = {};
path = '/home/wangxiao/Downloads/';
fid_ = fopen([path, 'loss_file_.txt'], 'a');
while(~feof(fid))
    tline = fgetl(fid);
    %%
    if strfind(tline, 'sgd_solver.cpp:')
        iter_index = strfind(tline, 'Iteration ');
        rest = tline((iter_index+9):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;
    end
    
    %%
    if strfind(tline, 'solver.cpp:228]')
        iter_index = strfind(tline, 'loss = ');
        loss_current = tline((iter_index+7):end);
        fprintf(fid_, '%s \n', loss_current );
        loss = [loss  loss_current] ;       % count the iteration; 
    end
    
    if strfind(tline, 'aver_accuracy: ')
        aver_accuracy_index = strfind(tline, 'aver_accuracy: ');
        aver_accuracy_current = tline((aver_accuracy_index+15):end);
       
        accuracy = [accuracy  aver_accuracy_current];
    end
end
    

loss_file_Path = importdata('/home/wangxiao/Downloads/loss_file_.txt');



 plot(loss_file_Path)

 

3. 结果展示:

posted @ 2016-04-23 20:05  AHU-WangXiao  阅读(3494)  评论(0编辑  收藏  举报