如何绘制caffe训练过程中的loss和accurary的曲线
2个回答
2016-11-02 · 国家定点培训基地,专注培养汽车人才。
云南万通汽车学校
云南万通汽修学校落于美丽的春城昆明,学校坏境优美,学习氛围浓厚。教学设施设备齐全,建有新能源汽车实训厅、整车实训厅、电器实训厅、汽车美容实训厅等20余个实训大厅,开设三十多个汽车技术专业。
向TA提问
关注
展开全部
绘制caffe训练过程中的loss和accurary的曲线方法如下:
1. 你可以从系统 /tmp 文件夹获取,名字是什么 caffe.ubuntu.username.log.INFO.....之类。
2. 在train的时候最后加 tee $folder_prefix/caffe.log,就可以重定向到文件夹了。
然后写个parser就能把图画出来了。
也不是parser。。。因为output规律很强,就是最最naive的字符串处理一下。
贴一下matlab给题主好了
% Well, this is a function that write the
% iteration vs accurancy
% iteration vs loss
% To a file
clc;
clear;
% log file of caffe model
logName = 'caffe.log.INFO.20150704-163137.27688';
fid = fopen(logName, 'r');
fid_accuracy = fopen('output_accuracy.txt', 'w');
fid_loss = fopen('output_loss.txt', 'w');
tline = fgetl(fid);
while ischar(tline)
% First find the accuracy line
k = strfind(tline, 'Test net output');
if (k)
k = strfind(tline, 'accuracy');
if (k)
% If the string contain test and accuracy at the same time
% The bias from 'accuracy' to the float number
indexStart = k + 11;
indexEnd = size(tline);
str = tline(indexStart : indexEnd(2));
end
% Get the number of index
k = strfind(tline, '#');
if (k)
indexStart = k + 1;
indexEnd = strfind(tline, ':');
str2 = tline(indexStart : indexEnd - 1);
end
% Concatenation of two string
res_str = strcat(str2, '/', str);
fprintf(fid_accuracy, '%s\r\n', res_str);
end
% Then find the loss line
k1 = strfind(tline, 'Iteration');
if (k1)
k2 = strfind(tline, 'loss');
if (k2)
indexStart = k2 + 7;
indexEnd = size(tline);
str1 = tline(indexStart:indexEnd(2));
indexStart = k1 + 10;
indexEnd = strfind(tline, ',') - 1;
str2 = tline(indexStart:indexEnd);
res_str1 = strcat(str2, '/', str1);
fprintf(fid_loss, '%s\r\n', res_str1);
end
end
tline = fgetl(fid);
end
fclose(fid);
fclose(fid_accuracy);
1. 你可以从系统 /tmp 文件夹获取,名字是什么 caffe.ubuntu.username.log.INFO.....之类。
2. 在train的时候最后加 tee $folder_prefix/caffe.log,就可以重定向到文件夹了。
然后写个parser就能把图画出来了。
也不是parser。。。因为output规律很强,就是最最naive的字符串处理一下。
贴一下matlab给题主好了
% Well, this is a function that write the
% iteration vs accurancy
% iteration vs loss
% To a file
clc;
clear;
% log file of caffe model
logName = 'caffe.log.INFO.20150704-163137.27688';
fid = fopen(logName, 'r');
fid_accuracy = fopen('output_accuracy.txt', 'w');
fid_loss = fopen('output_loss.txt', 'w');
tline = fgetl(fid);
while ischar(tline)
% First find the accuracy line
k = strfind(tline, 'Test net output');
if (k)
k = strfind(tline, 'accuracy');
if (k)
% If the string contain test and accuracy at the same time
% The bias from 'accuracy' to the float number
indexStart = k + 11;
indexEnd = size(tline);
str = tline(indexStart : indexEnd(2));
end
% Get the number of index
k = strfind(tline, '#');
if (k)
indexStart = k + 1;
indexEnd = strfind(tline, ':');
str2 = tline(indexStart : indexEnd - 1);
end
% Concatenation of two string
res_str = strcat(str2, '/', str);
fprintf(fid_accuracy, '%s\r\n', res_str);
end
% Then find the loss line
k1 = strfind(tline, 'Iteration');
if (k1)
k2 = strfind(tline, 'loss');
if (k2)
indexStart = k2 + 7;
indexEnd = size(tline);
str1 = tline(indexStart:indexEnd(2));
indexStart = k1 + 10;
indexEnd = strfind(tline, ',') - 1;
str2 = tline(indexStart:indexEnd);
res_str1 = strcat(str2, '/', str1);
fprintf(fid_loss, '%s\r\n', res_str1);
end
end
tline = fgetl(fid);
end
fclose(fid);
fclose(fid_accuracy);
免费领入学礼包 有礼
现在入学礼包等你来领
- 官方电话
- 在线客服
-
官方服务
- 官方网站
- 就业保障
- 热门专业
- 入学指南
- 在线课堂
- 领取礼包
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询