SSD(Single Shot MultiBox Detector):绘制训练过程loss,accuracy曲线

关于标准Caffe绘制loss,accuracy曲线参见这篇博客,写得很详细《Caffe 绘制训练过程loss,accuracy曲线》,而训练SSD时绘制loss,accuracy曲线稍简单点,因为SSD的训练脚本已经完成了日志输出重定向工作 。训练时训练日志已经以文件形式保存在jobs文件夹下
SSD(Single Shot MultiBox Detector):绘制训练过程loss,accuracy曲线_第1张图片
所以我们要做的就是直接利用这个日志文件绘制训练过程loss,accuracy曲线。

分析日志生成数据

caffe在tools/extra中自带日志分析工具,
在$ssd_root/tools/extra下执行(log文件名根据你的实际情况而定)

./parse_log.sh ../../jobs/VGGNet/VOC2007/SSD_300x300/VGG_VOC2007_SSD_300x300.log 

会生VGG_VOC2007_SSD_300x300.log.test,VGG_VOC2007_SSD_300x300.log.train两个解析过的文件
SSD(Single Shot MultiBox Detector):绘制训练过程loss,accuracy曲线_第2张图片
内容如下:
SSD(Single Shot MultiBox Detector):绘制训练过程loss,accuracy曲线_第3张图片

修改gnuplot设置

在$ssd_root/tools/extra下执行

cp plot_log.gnuplot.example plot_log.gnuplot

绘制train loss单曲线

复制plot_log.gnuplot.example的一个副本plot_log.gnuplot,在plot_log.gnuplot上修改,主要修改的是44行
下图是用rabbitvcs显示了修改前后的差异
SSD(Single Shot MultiBox Detector):绘制训练过程loss,accuracy曲线_第4张图片
删除掉注释后plot_log.gnuplot的完整内容及说明

reset
set terminal png
# 输出文件名 可不改
set output "VGG_VOC2007_SSD_300x300.png"
set style data lines
set key right

###### Fields in the data file your_log_name.log.train are
###### Iters Seconds TrainingLoss LearningRate

# Training loss vs. training iterations
# 设置标题名称
set title "SSD Training loss vs. training iterations"
# 设置x, y轴名称
set xlabel "Training iterations"
set ylabel "Training loss"
# 曲线绘制 title表示曲线名
# using 1:3 表示使用log-data.train的第一和第三列分别为x轴y轴
# VGG_VOC2007_SSD_300x300.log.train即为上一步生成的训练日志分析文件
plot "VGG_VOC2007_SSD_300x300.log.train" using 1:3 title "train loss"

在$ssd_root/tools/extra下执行

gnuplot plot_log.gnuplot

主就会在当前文件夹下生成 VGG_VOC2007_SSD_300x300.png。
SSD(Single Shot MultiBox Detector):绘制训练过程loss,accuracy曲线_第5张图片

绘制loss/accuracy双曲线

reset
set terminal png
# 输出文件名
set output "VGG_VOC2007_SSD_300x300.png"
set style data lines
set key right

###### Fields in the data file your_log_name.log.train are
###### Iters Seconds TrainingLoss LearningRate

# Training loss vs. training iterations
# 设置多图模式
set multiplot
# 设置标题名称
set title "SSD Training loss vs. training iterations"
# 设置x, y轴名称
set xlabel "Training iterations"
set ylabel "Training loss"
# 曲线绘制 title表示曲线名
# using 1:3 表示使用log-data.train的第一和第三列分别为x轴y轴
#plot "VGG_VOC2007_SSD_300x300.log.train" using 1:3 title "train loss", "VGG_VOC2007_SSD_300x300.log.test" using 1:3 title "test loss"

SSD(Single Shot MultiBox Detector):绘制训练过程loss,accuracy曲线_第6张图片

参考资料

《Caffe 绘制训练过程loss,accuracy曲线》

你可能感兴趣的:(deeplearning)