在训练过程中画出accuracy 和loss曲线能够更直观的观察网络训练的状态,以便更好的优化网络的训练。本文主要介绍在基于caffe框架训练网络时,如何利用caffe自带的一些实用的工具包来绘制曲线。
step1:保存日志文件
在训练过程中把终端输出的结果保存为一个日志文件,注意文件的后缀名必须是.log,这是因为后面再解析日志文件时有这个要求。如何把终端保存到日志文件,例子如下:
- 1
- 1
step2:解析日志文件
这一步利用caffe中tools/extra文件夹下的parse_log.py来解析日志文件。具体例子如下:
- 1
- 1
运行结束之后会发现在你保存的路径中会生成两个文件out.log.train和out.log.test
step3:绘制accuracy 和loss曲线。
利用caffe中tools/extra文件夹下的plot_training_log.py文件来绘制。
- 1
- 1
这里要解释下,如果你直接运行这个是会报错的。因为在out.log.test文件是这样的。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
load_data的时候第一行是不读的,要么你自己第一行加个#,要么就直接不读第一行。另外在split的时候不是用空格而是用‘,’因此做如下修改。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
上面还有个地方需要解释就是那个2是什么意思,这个你直接运行下Python plot_training_log.py就会打出帮助信息,就能看见了。
以上就是利用caffe自带的工具包绘制曲线的方法。