caffe保存训练log日志文件并利用保存的log文件绘制accuary loss曲线图

caffe保存训练log日志文件并利用保存的log文件绘制accuary loss曲线图,第1张

1、训练模型时保存log日志文件

方法1   一般情况下我们的训练模型标准语句是: $ sudo  ./build/tools/caffe train -solver=xxx/xxx/solver.prototxt       xxx/xxx/表示你的solver.prototxt文件所在位置

  需要保存log文件时的命令是:$ sudo GLOG_logtostderr=0 GLOG_log_dir='xxx/xxx/xxx/' build/tools/caffe train -solver=xxx/xxx/solver.prototxt      ’xxx/xxx/xxx/‘表示你所保存的log文件所在位置。

       训练完成后发现在我们保存的目录xxx/xxx/xxx/下生成了两个上锁log文件caffe.INFO和caffe.ubuntu.root.log.INFO.20170611-103712.5383。点击打开后我们可以看到我们所训练的日志文件。

方法2    ./build/tools/caffe train -solver=xn/PENLU/neural/nin/nin_solver.prototxt 2>&1 | tee xn/PENLU/snapshot/nin/nin_relu.log

2、利用生成的log文件绘制accuary loss曲线图

首先绘制图,caffe中其实已经自带了这样的小工具 caffe-master/tools/extra/parse_log.sh  和caffe-master/tools/extra/extract_seconds.py还有 caffe-master/tools/extra/plot_training_log.py.example拷贝以上文件到当前训练模型的目录下。

      然后我们到你保存的log文件目录下将1中保存的log文件解锁,解锁命令:sudo chmod -R 777 ./caffe.ubuntu.root.log.INFO.20170611-103712.5383

      解锁后我们就可以更改该log文件名为xxx.log(注意:要画图一定是.log文件,所以不改名不可以画)。

然后复制该xxx.log文件到你训练模型所在目录下。

      然后就可以利用命令画图了:在模型所在目录下命令: ./plot_training_log.py.example y xxx.png xxx.log      xxx.png是你保存的绘制出的图片名称,xxx.log是你保存的log文件名称。y表示的是你的所隐竖绘制的图片到底是什么图灶燃大片,具体解释如下:

        y的数字代表意义(0~7):

Supported chart types:    0: Test accuracy  vs. Iters    (准确率与迭代次数图)

1: Test accuracy  vs. Seconds    (准确率与时间图)

2: Test loss  vs. Iters    (测试损失与迭代次数图)

3: Test loss  vs. Seconds    (测试损失与时间图)

4: Train learning rate  vs. Iters    (学习率与迭代次数图)

5: Train learning rate  vs. Seconds    (学习率与时间图段镇)

6: Train loss  vs. Iters    (训练损失与迭代次数图)

7: Train loss  vs. Seconds   (训练损失与时间图)

运行后生成的文件有:log-data.log.test和log-data.log.test和xxx.png

3、test测试log日志文件保存与绘图类似过程

1.把数据转化成leveldb或者是lmdb格式 2.编氏御写好net和solver的prototxt文件 3.在命令行下输游知入caffe.exe train -solver XX.prototxt(solver的文件)或者在bat文件里输入那个指令并运行 基本是这样,不是很难,自己神核消参照example里面的文件多试几次就好

著作权归作者所有。

商业转载请联系作者获得授权,非商业转载请注明出处。

作者:齐浩之

链接:https://www.zhihu.com/question/36652304/answer/68438194

来源:知乎

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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12289958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存