MATLAB(Linux版)在一张图上绘制loss和Accuracy曲线

1.程序代码

clear;
clc;
close all;
train_log_file = 'log-2018-07-27-10-37-42.log';
train_interval = 20;
test_interval = 200;

[~, string_output] = dos(['cat ', train_log_file, ' | grep ''Train net output #0'' | awk ''{print $11}''']);
train_loss = str2num(string_output);
n = 1:length(train_loss);
idx_train = (n - 1) * train_interval;

[~, string_output] = dos(['cat ', train_log_file, ' | grep ''Test net output #2'' | awk ''{print $11}''']);
test_loss = str2num(string_output);
m = 1:length(test_loss);
idx_test = (m - 1) * test_interval;

[~, string_output] = dos(['cat ', train_log_file, ' | grep ''Test net output #0'' | awk ''{print $11}''']);
test_accuracy = str2num(string_output);
m1 = 1:length(test_accuracy);
idx_accuracy = (m1 - 1) * test_interval;

figure;
[ax,h1,h2]=plotyy(idx_train,train_loss,idx_accuracy, test_accuracy);
set(h1,'linestyle','-','marker','*','color','r');
set(h2,'linestyle','-','marker','x','color','b','linewidth',1);
hold on;
h3=plot(idx_test, test_loss,'g-o','linewidth',1);
%set(h3,'linestyle','-','marker','o','color','g','linewidth',1);
grid on;
set(get(ax(1),'ylabel'),'string','Loss');
set(get(ax(2),'ylabel'),'string','Accuracy');
set(ax(1),'ytick',[0:5:50]);  
set(ax(2),'ytick',[0:0.1:1]);  
title('Loss&Accuracy');
xlabel('Iterations','fontsize',10);
legend([h1,h2,h3],'train loss','test accuracy','test loss',0);
saveas(gcf,['/home/yangjian/draw_loss/','loss_plotyy','.png']);

2.效果图

猜你喜欢

转载自blog.csdn.net/weixin_40695510/article/details/81271657
今日推荐