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

时间:2022-06-10 08:09:30

参考博文:http://blog.csdn.net/u013078356/article/details/51154847 
在使用caffe训练数据,迭代次数非常大的时候,难免会想图形化展示实验结果。这样即便于训练过程中参数的调整,也便于最后成果的展示。

0. 需要的文件:

1 caffe/tools/extra/parse_log.sh  
2 caffe/tools/extra/extract_seconds.py
3 caffe/tools/extra/plot_training_log.py.example

1. 记录训练日志:

方法一:

1 GLOG_logtostderr=0 GLOG_log_dir=Vgg-face/codes/Log/ \  
2 ./build/tools/caffe train \
3 --solver=Vgg-face/codes/solver.prototxt

注意:

  • 在目录下新建文件夹Log
  • 去掉通常脚本里面开头的#!usr/bin/env sh 否则Log文件夹里面啥都不会出现

方法二:

1 #!/bin/bash
2 LOG=Vgg-face/Log/train-`date +%Y-%m-%d-%H-%M-%S`.log
3 ./build/tools/caffe train \
4 --solver=Vgg-face/codes/solver.prototxt --gpu=0 2>&1 | tee $LOG

注意:

  • 在目录下新建文件夹Log

此时将出现的文件名改为my.log 或者自己喜欢的名字,这个名字会出现在最后得到的图片里面。

2. 解析训练日志:

将开头提到的三个文件拷贝到Log文件夹里面。

1 ./parse_log.sh my.log  

注意:

  • 参考博文的博主提到的 ./parse_log.sh caffe.wujiyang-ubuntu.wujiyang.log 
    中的  caffe.  是所生成文件的文件名的一部分,不叫这个名字的童鞋,千万别在自己文件名前面➕ caffe. 不然会报错。

此时会出现 my.log.train 和 my.log.test 两个文件,里面保存了提取出来的 seconds、loss、accuracy 信息。

3. 绘制图片:

执行:

1 ./plot_training_log.py.example 0 save.png my.log 

也可以将 plot_training_log.py.example 改为 plot_training_log.py 

执行:

1 python plot_training_log.py 0 save.png my.log

其中:

  • 0 为曲线类型
  • save.png为保存图片的文件名
  • my.log为上述所得日志

参数的含义: 

1 Supported chart types: 
2 0: Test accuracy vs. Iters
3 1: Test accuracy vs. Seconds
4 2: Test loss vs. Iters
5 3: Test loss vs. Seconds
6 4: Train learning rate vs. Iters
7 5: Train learning rate vs. Seconds
8 6: Train loss vs. Iters
9 7: Train loss vs. Seconds

4. 结果展示

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

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