Caffe---自带工具 绘制loss和accuracy曲线
Caffe自带工具包---绘制loss和accuracy曲线
为什么要绘制loss和accuracy曲线?在训练过程中画出accuracy 和loss曲线能够更直观的观察网络训练的状态,以便更好的优化网络的训练。本文主要介绍在基于caffe框架训练网络时,利用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,训练模型并保存日志文件
2,解析日志文件
3,绘制accuracy 和loss曲线
4,多种曲线参数说明
5,附-常见问题
正文
1,训练模型并保存日志文件
在训练过程中把终端输出的结果保存为一个日志文件,注意文件的后缀名必须是.log,这是因为在解析日志文件时有这个要求。如何把终端保存到日志文件? 在训练文件(train_road.sh)中的命令中加入一行参数 ,实现Log日志的记录如train_road_log.sh:
#!/usr/bin/env sh
set -e TOOLS=./build/tools
$TOOLS/caffe train --solver=myself/road/prototxt_files/solver.prototxt 2>&1 | tee myself/road/Log/train_road_20180525.log
或者,参考其他网友的写法,如下:
#!/usr/bin/env sh
set -e
CAFFEROOT=/home/meringue/Softwares/caffe-master
CIFAR10PY=/home/meringue/Documents/CaffePy/cifar10py
MODEL=$CIFAR10PY/cifar10_caffemodels/model_Alex_ST
TOOLS=$CAFFEROOT/build/tools
echo 'start training...' GLOG_logtostderr=0 GLOG_log_dir=$MODEL/LOG/ \ # save log file
$TOOLS/caffe train \
--solver=$MODEL/cifar10_quick_solver.prototxt $@
#!/usr/bin/env sh
set -e
GLOG_logtostderr=0 GLOG_log_dir=/home/liuyun/caffe/models/AAA/A12/Log/ /home/liuyun/caffe/build/tools/caffe train -solver examples/AAA/solver.prototxt \
--weights ./models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel
???
这样训练结束之后,会在Log文件夹中生成每次训练的Log日志(xxx.log)。如果没有生成.log,可以改成.txt后缀,最后自己手动重名名即可以了。
接下来,将文件夹caffe/tools/extra下的parse_log.sh (parse_log.py)、extract_seconds.py、plot_training_log.py.example复制到上一步log日志文件的保存目录下。
2,解析日志文件
这一步利用caffe中tools/extra文件夹下的parse_log.py来解析日志文件。 (提示:这里记得不要使用python3,因为有些地方不兼容,如果只有python3,那你可以根据提示修改相应的代码,下同。)
具体,进入到前面Log的文件夹下,终端中执行:
# cd caffe
# cd myself/road/Log
(1)使用.py:
# python parse_log.py train_road_0525.log /home/wp/caffe/myself/road/Log/
## python parse_log.py train_road_0525.log ./
#parse_log.py后,第1个参数是日志文件log的名字,第2个参数是解析完成log后的保存地址。
结果如下图,注意有逗号:

(2)或者,使用.sh:# sh parse_log.sh train_road_0525.log
运行结束之后,会在当前文件夹下生成一个train_road_0525.log.train文件和一个train_road_0525.log.test文件。
结果如下图,注意无逗号:

3,绘制accuracy 和loss曲线
利用caffe中tools/extra文件夹下的plot_training_log.py文件来绘制。进入“# cd caffe # cd myself/road/Log” 文件后,
(1)可以直接使用plot_training_log.py.example绘制曲线:
# python plot_training_log.py.example 0 save_train_road_0525.png train_road_0525.log
# 其中,0为图类型编号,全部编号参考《4,多种曲线参数说明》。

(2)也可以,将plot_training_log.py.example改为plot_training_log.py,并执行以下命令就可以绘制曲线:
# python plot_training_log.py 6 save_train_road_0525_6.png train_road_0525.log
# 其中,6为图类型编号,全部编号参考《4,多种曲线参数说明》。

4,多种曲线参数说明
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 
5,附-常见问题
利用plot_training_log.py文件来绘制,可能会出现一些问题,如下:


参考:
https://blog.csdn.net/Running_J/article/details/51505715
https://www.zhihu.com/question/49521165
https://blog.csdn.net/u013989576/article/details/71302244
https://blog.csdn.net/wd1603926823/article/details/55001613
进行解决。本文过程图像显示顺利,没有进行有关文件的修改,留做备用。
Caffe---自带工具 绘制loss和accuracy曲线的更多相关文章
- Caffe学习系列(19): 绘制loss和accuracy曲线
如同前几篇的可视化,这里采用的也是jupyter notebook来进行曲线绘制. // In [1]: #加载必要的库 import numpy as np import matplotlib.py ...
- Caffe---Pycaffe 绘制loss和accuracy曲线
Caffe---Pycaffe 绘制loss和accuracy曲线 <Caffe自带工具包---绘制loss和accuracy曲线>:可以看出使用caffe自带的工具包绘制loss曲线和a ...
- caffe的python接口学习(7):绘制loss和accuracy曲线
使用python接口来运行caffe程序,主要的原因是python非常容易可视化.所以不推荐大家在命令行下面运行python程序.如果非要在命令行下面运行,还不如直接用 c++算了. 推荐使用jupy ...
- 解决caffe绘制训练过程的loss和accuracy曲线时候报错:paste: aux4.txt: 没有那个文件或目录 rm: 无法删除"aux4.txt": 没有那个文件或目录
我用的是faster-rcnn,在绘制训练过程的loss和accuracy曲线时候,抛出如下错误,在网上查找无数大牛博客后无果,自己稍微看了下代码,发现,extract_seconds.py文件的 g ...
- caffe绘制训练过程的loss和accuracy曲线
转自:http://blog.csdn.net/u013078356/article/details/51154847 在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果.如 ...
- 【Caffe】利用log文件绘制loss和accuracy(转载)
(原文地址:http://blog.csdn.net/liuweizj12/article/details/64920428) 在训练过程中画出accuracy 和loss曲线能够更直观的观察网络训练 ...
- Caffe 根据log信息画出loss,accuracy曲线
在执行训练的过程中,若指定了生成log信息,log信息包含初始化,网络结构初始化和训练过程随着迭代数的loss信息. 注意生成的log文件可能没有.log后缀,那么自己加上.log后缀.如我的log信 ...
- caffe-windows画loss与accuracy曲线
参考博客: http://blog.csdn.net/sunshine_in_moon/article/details/53541573 进入tools/extra/文件夹中,修改plot_train ...
- caffe net 可视化工具,,层特征可视化
1.只用网络在线结构绘制可视化网络模型 http://ethereon.github.io/netscope/#/editor 将对应的网络输入到里面,然后按shift+enter即可查看对应的网络结 ...
随机推荐
- 【ABAP系列】SAP ABAP BAPI_REQUISITION_CREATE创建采购申请
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP BAPI_RE ...
- manjar 搭建aria2c下载器
从添加或删除软件管理程序里安装 aria2. 在一个地方创建一个文本文件,名为 「aria2.conf」 : rpc-user=我是用户名 rpc-passwd=我是密码 enable-rpc=tru ...
- C++——文件的读写
C++中标准IO库的fstream头文件定义了三种支持文件IO的类型: ifstream,由istream派生而来,提供读文件的功能. ofstream,由ostream派生而来,提供写文件的功能. ...
- NOIp2012:借教室
题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...
- docker入门1--简介、安装
一. Docker是什么,能做什么,好处和坏处都在哪里? Docker是一个开源的应用容器引擎,用Go语言写成. Docker最主要的作用,就是将程序执行所需要的环境变量与开发的程序代码进行打包处 ...
- IO-file-03 文件的长度
package com.bwie.io; import java.io.File; public class FileDemo4 { /**文件字节数 * length():字节数 文件夹 0 * * ...
- 5个Linux性能命令
使用几个命令就可以管理Linux系统的性能了,下面列出了5个最常用的Linux性能命令,包括top.vmstat.iostat.free和sar,它们有助于系统管理员快速解决性能问题. (1)to ...
- 什么是Metrics-(通俗易懂)
在应用程序中,通常会记录日志以便事后分析,在很多情况下是产生了问题之后,再去查看日志,是一种事后的静态分析.在很多时候,我们可能需要了解整个系统在当前,或者某一时刻运行的情况,比如一个系统后台服务,我 ...
- [转帖]龙芯:Docker 配置与实践清单
Docker 配置与实践清单 http://www.sohu.com/a/254904706_198222 文章对来官方文档及 Docker Links[1] 中链接内容进行归档整理,包含了日常工作中 ...
- 使用dockerfile 搭建django系统(nginx+redis+mongodb+celery)
背景 有需求需要对django系统进行docker化,以达到灵活部署和容灾.该系统基于django 2.2版本开发,数据库采用mongodb,服务器使用nginx,因系统有部分异步任务,异步任务则采用 ...