加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 大数据 > 正文

DeepLearning: 数据处理5:将caffe训练时屏幕输出可视化(matlab

发布时间:2021-03-16 06:01:31 所属栏目:大数据 来源:网络整理
导读:说明:必须再前一篇博文的基础上使用本文中的代码。先将屏幕输出保存到文本中,然后在使用本文中的代码。。。同样,这里只是我的环境下调通的,根据个人,适当调整代码就行了。。。都是重复造轮子,没啥技术含量。。。 % 根据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');

效果图以后有空再贴吧。。。。

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读