用caffe自带工具绘制loss accuracy

来源:互联网 发布:sql优化 面试题 编辑:程序博客网 时间:2024/05/18 09:02

用caffe自带的工具绘制loss和accuracy曲线,网上的说法不一,有的说的不是很详细准确,自己揣摩试验了才知道可行不可行,结合网上大神给的经验,以下亲测有效:
1. 记录训练日志:
以mnist为例(先在examples/mnist下创建一个log文件夹,注意GLOG_log_dir和自己的路径对应上)

cd caffe-pruned-master
GLOG_logtostderr=0 GLOG_log_dir=examples/mnist/log/ ./build/tools/caffe train –solver=examples/mnist/lenet_solver.prototxt

这样训练结束之后,会在Log文件夹中生成每次训练的Log日志 (我的为例,生成 caffe.INFO 和caffe.yan.yan.log.INFO.20170531-154220.3383 )

2.解析训练日志
一般下载好caffe源码都会找到以下三个脚本文件:
caffe/tools/extra/parse_log.sh
caffe/tools/extra/extract_seconds.py
caffe/tools/extra/plot_training_log.py.example
将上面说的3个脚本文件拷贝到log 文件夹下,切换到log目录,执行:(可以先chmod 777获取权限)

./parse_log.sh caffe.yan.yan.log.INFO.20170531-154220.3383

后面的参数为log文件名,这样就会在当前文件夹下生成一个.train文件和一个.test文件 (我的为例,生成caffe.yan.yan.log.INFO.20170531-154220.3383.test和 caffe.yan.yan.log.INFO.20170531-154220.3383.train)里面保存了提取出来的 seconds、loss、accuracy 信息。

3 绘制图片:
./plot_training_log.py.example 0 save.png caffe.yan.yan.log.INFO.20170531-154220.3383

就可以生成训练过程中的Test accuracy vs. Iters 曲线,其中0代表曲线类型, save.png 代表保存的图片名称
caffe中支持很多种曲线绘制,通过指定不同的类型参数即可,具体参数如下
[plain] view plain copy
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
下面是我自己做实验时得出的图:
这里写图片描述

这里写图片描述