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

关于标准Caffe绘制loss,accuracy曲线参见这篇博客,写得很详细《Caffe 绘制训练过程loss,accuracy曲线》,而训练SSD时绘制loss,accuracy曲线稍简单点,因为SSD的训练脚本已经完成了日志输出重定向工作 。训练时训练日志已经以文件形式保存在jobs文件夹下

所以我们要做的就是直接利用这个日志文件绘制训练过程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两个解析过的文件

内容如下:

修改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显示了修改前后的差异

删除掉注释后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。

绘制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"

参考资料

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

浣熊检测器实例, 如何用TensorFlow的Object Detector API来训练你的物体检测器

这篇文章是“用Tensorflow和OpenCV构建实时对象识别应用”的后续文章。具体来说,我在自己收集和标记的数据集上训练了我的浣熊检测器。完整的数据集可以在...

4527
来自专栏目标检测和深度学习

YOLO v3的tf+keras实现

1654
来自专栏二进制文集

Caffe MNIST 简要分析

MNIST database,一个手写数字的图片数据库,每一张图片都是0到9中的单个数字。每一张都是抗锯齿(Anti-aliasing)的灰度图,图片大小282...

722
来自专栏IT派

讲解 Vision 图像识别框架 API详解

本篇文章主要简单介绍下其中的 Vision API 的使用(Vision更强大的地方是可以结合Core ML模型实现更强大的功能,本篇文章就不详细展开了) Vi...

4056
来自专栏ATYUN订阅号

Tensorflow生成模型收集: GANs与VAEs

本文将收集TensorFlow可生成的模型,列举出各种GANs和VAEs的Tensorflow实现。 生成对抗网络(GANs) 列表 ? GAN文章链接:htt...

4545
来自专栏机器之心

教程 | 用摄像头和Tensorflow.js在浏览器上实现目标检测

2024
来自专栏深度学习那些事儿

深度学习图像分割(二)——如何制作自己的PASCAL-VOC2012数据集

在之前的那篇文章中:深度学习图像分割(一)——PASCAL-VOC2012数据集(vocdevkit、Vocbenchmark_release)详细介绍 我们大...

7774
来自专栏前端知识分享

第99天:CSS3中透视perspective

与之前的过程相同,视点与移动后的元素的连线与屏幕的焦点就是在屏幕上的呈现的元素的大小,与元素相比较变大了。

592
来自专栏专知

【下载】PyTorch 实现的YOLO v2目标检测算法

【导读】目标检测是计算机视觉的重要组成部分,其目的是实现图像中目标的检测。YOLO是基于深度学习方法的端到端实时目标检测系统(YOLO:实时快速目标检测)。YO...

4276
来自专栏ATYUN订阅号

Deep Photo Styletransfer的一种纯Tensorflow实现,教你如何转换图片风格

通过深度学习,一秒钟让你的照片高大上,这是康奈尔大学和 Adobe 的工程师合作的一个新项目,通过卷积神经网络把图片进行风格迁移。项目已开源,名字叫「Deep ...

4115

扫码关注云+社区