caffe绘制训练过程的loss和accuracy曲线

在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.记录训练日志

在训练过程中的.sh文件中加入一行参数 ,实现Log日志的记录

~~TOOLS=./build/tools  
GLOG_logtostderr=0 GLOG_log_dir=deepid/deepid2/Log/ \  
$TOOLS/caffe train \  
  --solver=deepid/deepid2/deepid_solver.prototxt~~     

在训练的.sh文件中,最后加入

~~2>&1 | tee ./log/out.log~~ 

&1:标准输出;
2:标准错误输出;
2>&1 的意思就是将标准错误重定向到标准输出;
./log/out.log为输出文件地址,可以修改。

其中目录改成自己系统的目录,这样训练结束之后,会在Log文件夹中生成每次训练的Log日志。

注意:增加此代码可能会导致caffe不输出caffemodel文件。
GLOG_log_dir为输出日志位置。
此时,可以使用此参数指定的路径文件夹下的log信息。

2.解析训练日志

将最上面说的3个脚本文件拷贝到Log 文件夹下,执行:

~~./parse_log.sh caffe.wujiyang-ubuntu.wujiyang.log~~   

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

此处的代码可能会有问题,可以自己编写代码进行解析。
比较好的方法是使用正则进行匹配。
下面有代码连接。

3.生成图片

执行
./plot_training_log.py.example 0 save.png caffe.wujiyang-ubuntu.wujiyang.log
就可以生成训练过程中的Test accuracy vs. Iters 曲线,其中0代表曲线类型, save.png 代表保存的图片名称
caffe中支持很多种曲线绘制,通过指定不同的类型参数即可,具体参数如下

    ~~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~~ 

参考:
http://blog.csdn.net/u013078356/article/details/51154847

使用python的文件的方法把out.log读进来,逐行分析,把需要记录的训练次数和loss记录下来之后使用matplotlib进行绘图,效果如下。代码
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值