方法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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)