DeepLearning: 数据处理5:将caffe训练时屏幕输出可视化(matlab
发布时间:2020-12-14 01:53:03 所属栏目:大数据 来源:网络整理
导读:说明:必须再前一篇博文的基础上使用本文中的代码。先将屏幕输出保存到文本中,然后在使用本文中的代码。。。同样,这里只是我的环境下调通的,根据个人,适当调整代码就行了。。。都是重复造轮子,没啥技术含量。。。 % 根据caffe输出文档,作出accuracy,lo
说明:必须再前一篇博文的基础上使用本文中的代码。先将屏幕输出保存到文本中,然后在使用本文中的代码。。。同样,这里只是我的环境下调通的,根据个人,适当调整代码就行了。。。都是重复造轮子,没啥技术含量。。。 % 根据caffe输出文档,作出accuracy,loss图
clear;close all ;clc;
file.test_accuracy = 'Test_accuracy.txt';
file.test_loss = 'Test_loss.txt';
file.train_loss = 'Train_loss.txt';
dir = '/home/li/lilai/myMatlabcode/';
% 测试准确率
test_accuracy = []; % 准确率
test_accuracy_inter = []; % 准确率对应的迭代间隔次数
path1 = [dir,file.test_accuracy];
fid1 = fopen(path1,'r');
% 给定一个指示器,用于获取前几行的关键信息
i= 0;
% 判断文件末尾
while ~feof(fid1)
% 一次获取一行
tmpline = fgetl(fid1);
i = i+1;
% 输出一些信息
if i ==1 || i==3
disp (tmpline)
end
% 迭代次数
if (i == 2)
count_test_accuracy = str2num(tmpline);
disp (count_test_accuracy)
end
% 迭代间隔
if (i==4)
interval_test_accuracy = str2num(tmpline);
disp(interval_test_accuracy)
end
% 准确率
if i>5
% 因为准确率一般不会大于1,所以用‘0’来分割
[tmp1,tmp2] = strtok(tmpline,'0');
test_accuracy(i-5) = str2num(tmp2);
test_accuracy_inter(i-5) = (i-6)*interval_test_accuracy;
end
end
fclose(fid1);
figure('Color',[1 1 1]);
plot(test_accuracy_inter,test_accuracy,'r->');
xlabel('迭代次数');
ylabel('准确率(%)');
title('TestAccuracy');
% 训练损失和测试损失
train.train_loss = []; % 准确率
train.train_loss_inter = [];
test.test_loss= [];
test.test_loss_inter = [];
path2 = [dir,file.test_loss];
path3 = [dir,file.train_loss];
fid2= fopen(path2,'r');
fid3 = fopen(path3,'r');
% 给定一个指示器,用于获取前几行的关键信息
i= 0;
% 判断文件末尾
while ~feof(fid2)
% 一次获取一行
tmpline = fgetl(fid2);
i = i+1;
% 输出一些信息
if i ==1 || i==3
disp (tmpline)
end
% 迭代次数
if (i == 2)
count_test_loss = str2num(tmpline);
disp (count_test_loss)
end
% 迭代间隔
if (i==4)
interval_test_loss = str2num(tmpline);
disp(interval_test_loss )
end
% 损失值
if i>5
% 因为loss一般不会大于1,所以用‘0’来分割
[tmp1,'0');
test.test_loss(i-5) = str2num(tmp2);
test.test_loss_inter(i-5) = (i-6)*interval_test_loss;
end
end
fclose(fid2);
figure('Color',[1 1 1]);
plot(test.test_loss_inter,test.test_loss,'g->');
xlabel('迭代次数');
ylabel('测试损失值');
title('TestLoss');
i= 0;
% 判断文件末尾
while ~feof(fid3)
% 一次获取一行
tmpline = fgetl(fid3);
i = i+1;
% 输出一些信息
if i ==1 || i==3
disp (tmpline)
end
% 迭代次数
if (i == 2)
count_train_loss = str2num(tmpline);
disp (count_train_loss)
end
% 迭代间隔
if (i==4)
interval_train_loss = str2num(tmpline);
disp(interval_train_loss )
end
% 损失值
if i>5
% 因为loss一般不会大于1,所以用‘0’来分割
[tmp1,'0');
train.train_loss(i-5) = str2num(tmp2);
train.train_loss_inter(i-5) = (i-6)*interval_train_loss;
end
end
fclose(fid3);
figure('Color',[1 1 1]);
plot(train.train_loss_inter,train.train_loss,'b->');
xlabel('迭代次数');
ylabel('训练损失值');
title('TrainLoss');
效果图以后有空再贴吧。。。。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |