caffe自带工具绘制训练accuracy、loss曲线

时间:2022-07-09 08:11:18

在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果。如果自己写代码记录训练过程的数据,那就太麻烦了,caffe中其实已经自带了这样的小工具 caffe-master/tools/extra/parse_log.sh  caffe-master/tools/extra/extract_seconds.py和caffe-master/tools/extra/plot_training_log.py.example ,通过训练指令记录下训练过程,完成训练后通过日志绘制出曲线,具体使用方法如下:


1.记录训练日志

在训练命令中加入一行参数,实现Log日志的记录,以如下finutuning训练为例:

TOOLS = ./build/tools 

GLOG_logtostderr = 0  GLOG_log_dir = examples/foam/Log/ \ 

$TOOLS/caffe train \ 

  -solver examples/foam/ solver.prototxt  -weightsmodels/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel

其中目录改成自己系统的目录,这样训练结束之后,会在Log文件夹中生成每次训练的Log日志caffe.smith-PC.smith.log.INFO.20161130-181834.3126 和caffe.smith-PC.smith.log.WARNING.20161130-181834.3126。将第一个文件重命名为curve.log,用于绘曲线。

 

2.解析训练日志

将最上面说的3个脚本文件拷贝到Log 文件夹下,一个不能少,cd入Log文件夹,执行:

./parse_log.sh curve.log 

后面的参数为log文件名,这样就会在当前文件夹下生成一个.train文件和一个.test文件

 

3.生成图片

执行

./plot_training_log.py.example 0 curve.png curve.log 

就可以生成训练过程中的Test accuracy  vs. Iters 曲线,其中0代表曲线类型,save.png 代表保存的图片名称,保存在Log文件夹下。

caffe中支持很多种曲线绘制,通过指定不同的类型参数即可,具体参数如下

Notes: 

   1. Supporting multiple logs. 

   2. Log file name must end with the lower-cased ".log". 

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 

 

最后,看一下效果

caffe自带工具绘制训练accuracy、loss曲线

caffe自带工具绘制训练accuracy、loss曲线